SlideShare uma empresa Scribd logo
1 de 119
Baixar para ler offline
3D & animation effects
implementing animation & 3D using CSS3 & jQuery
presented by Vu Tran Lam
Saturday, March 9, 13
the web is less than
9000 days old
http://wwwflickr.com/photos/psd/3149878971
Saturday, March 9, 13
1/3
2012 estimates put the population at about 7 billion inhabitants...
Internet
of
people
on
planet
using
Saturday, March 9, 13
1/3 people has
a smartphone
of
Saturday, March 9, 13
the smartphone era
begins...
Saturday, March 9, 13
brings touch, gestures
iPhone 3G
web
touch
and the real web...
iPhone
2007 2008
Saturday, March 9, 13
20082007 2009
3GiPhone
iPhone 3GS
native apps and
android
apps
the rise of Android...
Saturday, March 9, 13
2008 2009
3G
2010
3GS
2011
4
blackberry
kindle
nook
devices go mainstream
iPhone 5...
with great expectations...
samsung
motorola
htc
LG
Saturday, March 9, 13
web evaluation...
Saturday, March 9, 13
Saturday, March 9, 13
Saturday, March 9, 13
Saturday, March 9, 13
yesterday
“go to the computer”
to use the web/Internet
Saturday, March 9, 13
yesterday
“go to the computer”
to use the web/Internet
today
“use the mobile”
to use the web/Internet
Saturday, March 9, 13
14
small + medium + large
Saturday, March 9, 13
15
one standard for every devices
Saturday, March 9, 13
Saturday, March 9, 13
http://www.flickr.com/photos/aubergene/970367879
...view flash &
video on iDevice?
Saturday, March 9, 13
http://www.flickr.com/photos/aubergene/970367879
no flash or video
but need to find a key...
Saturday, March 9, 13
...in the old days
Saturday, March 9, 13
function	
  MM_timelinePlay(tmLnName,	
  myID)	
  {	
  //v1.2
	
  	
  //Copyright	
  1998,	
  1999,	
  2000,	
  2001,	
  2002,	
  2003,	
  2004	
  Macromedia,	
  Inc.	
  All	
  rights	
  reserved.
	
  	
  var	
  i,j,tmLn,props,keyFrm,sprite,numKeyFr,firstKeyFr,propNum,theObj,firstTime=false;
	
  	
  if	
  (document.MM_Time	
  ==	
  null)	
  MM_initTimelines();	
  //if	
  *very*	
  1st	
  time
	
  	
  tmLn	
  =	
  document.MM_Time[tmLnName];
	
  	
  if	
  (myID	
  ==	
  null)	
  {	
  myID	
  =	
  ++tmLn.ID;	
  firstTime=true;}//if	
  new	
  call,	
  incr	
  ID
	
  	
  if	
  (myID	
  ==	
  tmLn.ID)	
  {	
  //if	
  Im	
  newest
	
  	
  	
  	
  setTimeout('MM_timelinePlay("'+tmLnName+'",'+myID+')',tmLn.delay);
	
  	
  	
  	
  fNew	
  =	
  ++tmLn.curFrame;
	
  	
  	
  	
  for	
  (i=0;	
  i<tmLn.length;	
  i++)	
  {
	
  	
  	
  	
  	
  	
  sprite	
  =	
  tmLn[i];
	
  	
  	
  	
  	
  	
  if	
  (sprite.charAt(0)	
  ==	
  's')	
  {
	
  	
  	
  	
  	
  	
  	
  	
  if	
  (sprite.obj)	
  {
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  numKeyFr	
  =	
  sprite.keyFrames.length;	
  firstKeyFr	
  =	
  sprite.keyFrames[0];
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  if	
  (fNew	
  >=	
  firstKeyFr	
  &&	
  fNew	
  <=	
  sprite.keyFrames[numKeyFr-­‐1])	
  {//in	
  range
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  keyFrm=1;
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  for	
  (j=0;	
  j<sprite.values.length;	
  j++)	
  {
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  props	
  =	
  sprite.values[j];	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  if	
  (numKeyFr	
  !=	
  props.length)	
  {
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  if	
  (props.prop2	
  ==	
  null)	
  sprite.obj[props.prop]	
  =	
  props[fNew-­‐firstKeyFr];
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  else	
  	
  	
  	
  	
  	
  	
  	
  sprite.obj[props.prop2][props.prop]	
  =	
  props[fNew-­‐firstKeyFr];
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  }	
  else	
  {
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  while	
  (keyFrm<numKeyFr	
  &&	
  fNew>=sprite.keyFrames[keyFrm])	
  keyFrm++;
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  if	
  (firstTime	
  ||	
  fNew==sprite.keyFrames[keyFrm-­‐1])	
  {
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  if	
  (props.prop2	
  ==	
  null)	
  sprite.obj[props.prop]	
  =	
  props[keyFrm-­‐1];
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  else	
  	
  	
  	
  	
  	
  	
  	
  sprite.obj[props.prop2][props.prop]	
  =	
  props[keyFrm-­‐1];
	
  	
  	
  	
  	
  	
  	
  	
  }	
  }	
  }	
  }	
  }
	
  	
  	
  	
  	
  	
  }	
  else	
  if	
  (sprite.charAt(0)=='b'	
  &&	
  fNew	
  ==	
  sprite.frame)	
  eval(sprite.value);
	
  	
  	
  	
  	
  	
  if	
  (fNew	
  >	
  tmLn.lastFrame)	
  tmLn.ID	
  =	
  0;
	
  	
  }	
  }
}
...in the old days
Saturday, March 9, 13
function	
  MM_timelinePlay(tmLnName,	
  myID)	
  {	
  //v1.2
	
  	
  //Copyright	
  1998,	
  1999,	
  2000,	
  2001,	
  2002,	
  2003,	
  2004	
  Macromedia,	
  Inc.	
  All	
  rights	
  reserved.
	
  	
  var	
  i,j,tmLn,props,keyFrm,sprite,numKeyFr,firstKeyFr,propNum,theObj,firstTime=false;
	
  	
  if	
  (document.MM_Time	
  ==	
  null)	
  MM_initTimelines();	
  //if	
  *very*	
  1st	
  time
	
  	
  tmLn	
  =	
  document.MM_Time[tmLnName];
	
  	
  if	
  (myID	
  ==	
  null)	
  {	
  myID	
  =	
  ++tmLn.ID;	
  firstTime=true;}//if	
  new	
  call,	
  incr	
  ID
	
  	
  if	
  (myID	
  ==	
  tmLn.ID)	
  {	
  //if	
  Im	
  newest
	
  	
  	
  	
  setTimeout('MM_timelinePlay("'+tmLnName+'",'+myID+')',tmLn.delay);
	
  	
  	
  	
  fNew	
  =	
  ++tmLn.curFrame;
	
  	
  	
  	
  for	
  (i=0;	
  i<tmLn.length;	
  i++)	
  {
	
  	
  	
  	
  	
  	
  sprite	
  =	
  tmLn[i];
	
  	
  	
  	
  	
  	
  if	
  (sprite.charAt(0)	
  ==	
  's')	
  {
	
  	
  	
  	
  	
  	
  	
  	
  if	
  (sprite.obj)	
  {
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  numKeyFr	
  =	
  sprite.keyFrames.length;	
  firstKeyFr	
  =	
  sprite.keyFrames[0];
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  if	
  (fNew	
  >=	
  firstKeyFr	
  &&	
  fNew	
  <=	
  sprite.keyFrames[numKeyFr-­‐1])	
  {//in	
  range
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  keyFrm=1;
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  for	
  (j=0;	
  j<sprite.values.length;	
  j++)	
  {
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  props	
  =	
  sprite.values[j];	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  if	
  (numKeyFr	
  !=	
  props.length)	
  {
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  if	
  (props.prop2	
  ==	
  null)	
  sprite.obj[props.prop]	
  =	
  props[fNew-­‐firstKeyFr];
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  else	
  	
  	
  	
  	
  	
  	
  	
  sprite.obj[props.prop2][props.prop]	
  =	
  props[fNew-­‐firstKeyFr];
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  }	
  else	
  {
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  while	
  (keyFrm<numKeyFr	
  &&	
  fNew>=sprite.keyFrames[keyFrm])	
  keyFrm++;
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  if	
  (firstTime	
  ||	
  fNew==sprite.keyFrames[keyFrm-­‐1])	
  {
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  if	
  (props.prop2	
  ==	
  null)	
  sprite.obj[props.prop]	
  =	
  props[keyFrm-­‐1];
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  else	
  	
  	
  	
  	
  	
  	
  	
  sprite.obj[props.prop2][props.prop]	
  =	
  props[keyFrm-­‐1];
	
  	
  	
  	
  	
  	
  	
  	
  }	
  }	
  }	
  }	
  }
	
  	
  	
  	
  	
  	
  }	
  else	
  if	
  (sprite.charAt(0)=='b'	
  &&	
  fNew	
  ==	
  sprite.frame)	
  eval(sprite.value);
	
  	
  	
  	
  	
  	
  if	
  (fNew	
  >	
  tmLn.lastFrame)	
  tmLn.ID	
  =	
  0;
	
  	
  }	
  }
}
...in the old days
Saturday, March 9, 13
function	
  MM_timelinePlay(tmLnName,	
  myID)	
  {	
  //v1.2
	
  	
  //Copyright	
  1998,	
  1999,	
  2000,	
  2001,	
  2002,	
  2003,	
  2004	
  Macromedia,	
  Inc.	
  All	
  rights	
  reserved.
	
  	
  var	
  i,j,tmLn,props,keyFrm,sprite,numKeyFr,firstKeyFr,propNum,theObj,firstTime=false;
	
  	
  if	
  (document.MM_Time	
  ==	
  null)	
  MM_initTimelines();	
  //if	
  *very*	
  1st	
  time
	
  	
  tmLn	
  =	
  document.MM_Time[tmLnName];
	
  	
  if	
  (myID	
  ==	
  null)	
  {	
  myID	
  =	
  ++tmLn.ID;	
  firstTime=true;}//if	
  new	
  call,	
  incr	
  ID
	
  	
  if	
  (myID	
  ==	
  tmLn.ID)	
  {	
  //if	
  Im	
  newest
	
  	
  	
  	
  setTimeout('MM_timelinePlay("'+tmLnName+'",'+myID+')',tmLn.delay);
	
  	
  	
  	
  fNew	
  =	
  ++tmLn.curFrame;
	
  	
  	
  	
  for	
  (i=0;	
  i<tmLn.length;	
  i++)	
  {
	
  	
  	
  	
  	
  	
  sprite	
  =	
  tmLn[i];
	
  	
  	
  	
  	
  	
  if	
  (sprite.charAt(0)	
  ==	
  's')	
  {
	
  	
  	
  	
  	
  	
  	
  	
  if	
  (sprite.obj)	
  {
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  numKeyFr	
  =	
  sprite.keyFrames.length;	
  firstKeyFr	
  =	
  sprite.keyFrames[0];
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  if	
  (fNew	
  >=	
  firstKeyFr	
  &&	
  fNew	
  <=	
  sprite.keyFrames[numKeyFr-­‐1])	
  {//in	
  range
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  keyFrm=1;
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  for	
  (j=0;	
  j<sprite.values.length;	
  j++)	
  {
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  props	
  =	
  sprite.values[j];	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  if	
  (numKeyFr	
  !=	
  props.length)	
  {
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  if	
  (props.prop2	
  ==	
  null)	
  sprite.obj[props.prop]	
  =	
  props[fNew-­‐firstKeyFr];
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  else	
  	
  	
  	
  	
  	
  	
  	
  sprite.obj[props.prop2][props.prop]	
  =	
  props[fNew-­‐firstKeyFr];
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  }	
  else	
  {
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  while	
  (keyFrm<numKeyFr	
  &&	
  fNew>=sprite.keyFrames[keyFrm])	
  keyFrm++;
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  if	
  (firstTime	
  ||	
  fNew==sprite.keyFrames[keyFrm-­‐1])	
  {
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  if	
  (props.prop2	
  ==	
  null)	
  sprite.obj[props.prop]	
  =	
  props[keyFrm-­‐1];
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  else	
  	
  	
  	
  	
  	
  	
  	
  sprite.obj[props.prop2][props.prop]	
  =	
  props[keyFrm-­‐1];
	
  	
  	
  	
  	
  	
  	
  	
  }	
  }	
  }	
  }	
  }
	
  	
  	
  	
  	
  	
  }	
  else	
  if	
  (sprite.charAt(0)=='b'	
  &&	
  fNew	
  ==	
  sprite.frame)	
  eval(sprite.value);
	
  	
  	
  	
  	
  	
  if	
  (fNew	
  >	
  tmLn.lastFrame)	
  tmLn.ID	
  =	
  0;
	
  	
  }	
  }
}
Ugh, terrible code
...in the old days
Saturday, March 9, 13
you could not design graphic
http://www.flickr.com/photos/handwrite/3460075040
IMPOSSIBLE
& animation on website...
Saturday, March 9, 13
http://www.flickr.com/photos/vauvau/3466024918
animation & 3D effects
really bloody difficult...
this technique is
Saturday, March 9, 13
http://www.flickr.com/photos/clairity/1449248189
...we can not find a
suitable tree in the forest
Saturday, March 9, 13
http://www.flickr.com/photos/seatbelt67/502255276
hmm...
Saturday, March 9, 13
25
ways...?
Saturday, March 9, 13
26
...need a team
Saturday, March 9, 13
http://www.flickr.com/photos/farleyj/2768941171
Eureka!
HMTL5 & CSS3
Saturday, March 9, 13
welcome to w3c...
Saturday, March 9, 13
29
the next Web Standards
Saturday, March 9, 13
Saturday, March 9, 13
semantic layout
Web forms 2.0
audio & video
2D & 3D drawing
Saturday, March 9, 13
rounded corners
gradient fill
transition & animation
depth content
Saturday, March 9, 13
q
http://www.flickr.com/photos/sporst/3999795549
...let's first deal with
HTML5 Canvas & Video
graphic
Saturday, March 9, 13
...too many HTTP requests
provide alternates?
unsupported...that's a lot of
JavaScript!
requests...
...is Flash even supported?
does every device support Flash?
...ah, that is Flash!
the right version of
media formats...
Saturday, March 9, 13
HTML5 video suitable for
each browser
...screen size?
...available bandwidth?
for each browser...
media format
a couple
c.2000...
fsdfffSaturday, March 9, 13
Saturday, March 9, 13
Saturday, March 9, 13
Saturday, March 9, 13
HTML5 Canvas
Saturday, March 9, 13
using Canvas
<html>
<head>...</head>
<body>
<h1>Page	
  Heading</h1>
<p>Lorem	
  ipsum...</p>
<canvas	
  id="picture1"
width="400"
height="300"/>
<p>Lorem	
  ipsum...</p>
	
   </body>
</html>
Page Heading
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. orem
ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. orem
ipsum dolor sit amet, consectetur adipisicing elit, sed do
Saturday, March 9, 13
What is the difference between 2 logos?
Canvas logo PNG logo
Saturday, March 9, 13
...and demo
Saturday, March 9, 13
q
http://www.flickr.com/photos/sporst/3999795549
...let's continue with
3D effect using CSS3
Saturday, March 9, 13
conveying depth with CSS3
Saturday, March 9, 13
transforms
-­‐webkit-­‐transform:translateY(200px);
Saturday, March 9, 13
transforms
-­‐webkit-­‐transform:translateY(200px)	
  rotate(45deg);
Saturday, March 9, 13
building a Box
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<div	
  class=“package”>
Saturday, March 9, 13
x5
building a Box
Saturday, March 9, 13
building a Box with 3DTransforms
z
x
y
Saturday, March 9, 13
z
x
y
.package	
  >	
  div:nth-­‐child(1)	
  {
-­‐webkit-­‐transform:translateZ(200px);
}
building a Box with 3DTransforms
Saturday, March 9, 13
building a Box with 3DTransforms
	
   	
   	
  
	
   	
   x
z
	
   y
	
   	
   	
  
.package	
  >	
  div:nth-­‐child(1)	
  {
-­‐webkit-­‐transform:translateZ(200px);
}
Saturday, March 9, 13
  	
   	
  
	
   	
   	
  
	
   	
   x
z
y
.package	
  >	
  div:nth-­‐child(2)	
  {
-­‐webkit-­‐transform:rotateY(90deg);
}
building a Box with 3DTransforms
Saturday, March 9, 13
x
	
   	
  
	
   z
y
-­‐webkit-­‐transform:
rotateY(90deg)	
  translateZ(200px);
.package	
  >	
  div:nth-­‐child(2)	
  {
}
building a Box with 3DTransforms
Saturday, March 9, 13
x
	
   	
  
	
   z
y
-­‐webkit-­‐transform:
rotateY(90deg)	
  translateZ(200px);
.package	
  >	
  div:nth-­‐child(2)	
  {
}
building a Box with 3DTransforms
Saturday, March 9, 13
52
building a Box with 3DTransforms
Saturday, March 9, 13
a 3D Box?
Saturday, March 9, 13
perspective
Saturday, March 9, 13
-webkit-perspective:400px;
Saturday, March 9, 13
-webkit-perspective:800px;
Saturday, March 9, 13
-webkit-perspective:8000px;
Saturday, March 9, 13
adding perspective
-­‐webkit-­‐perspective:800px;
.package	
  {
}
Saturday, March 9, 13
3D Box with perspective
Saturday, March 9, 13
...and demo
Saturday, March 9, 13
q
http://www.flickr.com/photos/sporst/3999795549
...let's continue with
transition effect using CSS3
Saturday, March 9, 13
rotating a Box
<div	
  class=“package”>
	
  <div></div>
	
  <div></div>
	
  <div></div>
	
  <div></div>
	
  <div></div>
</div>
Saturday, March 9, 13
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
	
  </div>
</div>
<div	
  class=“package_container”>
	
  <div	
  class=“package”>
rotating a Box
Saturday, March 9, 13
.package	
  {
-­‐webkit-­‐perspective:800px;
}
rotating a Box
Saturday, March 9, 13
.package	
  {
}
.package_container	
  {
-­‐webkit-­‐perspective:800px;
}
rotating a Box
Saturday, March 9, 13
.package	
  {
-­‐webkit-­‐transform-­‐style:preserve-­‐3d;
}
.package_container	
  {
-­‐webkit-­‐perspective:800px;
}
rotating a Box
Saturday, March 9, 13
.package	
  {
}
rotating a Box
Saturday, March 9, 13
.package	
  {
}
.package.right_side	
  {
-­‐webkit-­‐transform:rotateY(-­‐90deg);
}
class=“package	
  right_side”
rotating a Box
Saturday, March 9, 13
rotating a Box
.package	
  {
	
  	
  	
  -­‐webkit-­‐transition:-­‐webkit-­‐transform	
  1s;
}
.package.right_side	
  {
-­‐webkit-­‐transform:rotateY(-­‐90deg);
}
class=“package	
  right_side”
Saturday, March 9, 13
rotating a Box
.package	
  {
	
  	
  	
  -­‐webkit-­‐transition:-­‐webkit-­‐transform	
  1s;
}
.package.right_side	
  {
-­‐webkit-­‐transform:rotateX(-­‐90deg);
}
class=“package”
Saturday, March 9, 13
rotating a Box
.package	
  {
	
  	
  	
  -­‐webkit-­‐transition:-­‐webkit-­‐transform	
  1s;
}
.package.inside	
  {
-­‐webkit-­‐transform:rotateX(-­‐90deg);
}
class=“package	
  inside”
Saturday, March 9, 13
applying a Transition without javascript
Saturday, March 9, 13
.sticker	
  {
background-­‐position:-­‐30px;
border-­‐radius:5px;
}
.sticker:hover	
  {
background-­‐position:0;
border-­‐bottom-­‐left-­‐radius:50%	
  20px;
box-­‐shadow:-­‐5px	
  10px	
  15px	
  rgba(0,0,0,0.25);
}
applying a Transition without javascript
Saturday, March 9, 13
transition on hover
background-­‐position,
border-­‐bottom-­‐left-­‐radius,
box-­‐shadow;
-­‐webkit-­‐transition-­‐duration:1s;
}
.sticker:hover	
  {
background-­‐position:0;
border-­‐bottom-­‐left-­‐radius:50%	
  20px;
}
.sticker	
  {
background-­‐position:-­‐30px;
border-­‐radius:5px;
-­‐webkit-­‐transition-­‐property:
Saturday, March 9, 13
stamp keyframe animation
0%
middle
flat
small
100%
top right
rotated
small
25%
flipped
50%
flipped
big
Saturday, March 9, 13
@-­‐webkit-­‐keyframes
stamp keyframe animation
Saturday, March 9, 13
@-­‐webkit-­‐keyframes	
  stamp-­‐it	
  {
}
Animation	
  name
stamp keyframe animation
Saturday, March 9, 13
25%	
  {
}
50%	
  {
}
100%	
  {
}
}
@-­‐webkit-­‐keyframes	
  stamp-­‐it	
  {
stamp keyframe animation
Saturday, March 9, 13
25%	
  {
}
50%	
  {
}
100%	
  {
top:30px;
right:30px;
}
}
	
  
@-­‐webkit-­‐keyframes	
  stamp-­‐it	
  {
stamp keyframe animation
Saturday, March 9, 13
25%	
  {
-­‐webkit-­‐transform:translateZ(200px)	
  rotateY(-­‐45deg)	
  rotateX(-­‐30deg);
}
50%	
  {
-­‐webkit-­‐transform:translateZ(300px)	
  rotateY(-­‐45deg)	
  rotateX(-­‐30deg);
}
100%	
  {
top:30px;
right:30px;
-­‐webkit-­‐transform:rotate(-­‐5deg);
@-­‐webkit-­‐keyframes	
  stamp-­‐it	
  {
stamp keyframe animation
}
Saturday, March 9, 13
25%	
  {
-­‐webkit-­‐transform:translateZ(200px)	
  rotateY(-­‐45deg)	
  rotateX(-­‐30deg);
}
50%	
  {
-­‐webkit-­‐transform:translateZ(300px)	
  rotateY(-­‐45deg)	
  rotateX(-­‐30deg)
scale(2);
}
100%	
  {
top:30px;
right:30px;
-­‐webkit-­‐transform:rotate(-­‐5deg);
@-­‐webkit-­‐keyframes	
  stamp-­‐it	
  {
stamp keyframe animation
}
Saturday, March 9, 13
@-­‐webkit-­‐keyframes	
  stamp-­‐it	
  {...}
</style>
<style>
stamp keyframe animation
Saturday, March 9, 13
@-­‐webkit-­‐keyframes	
  stamp-­‐it	
  {...}
</style>
<style>
stamp keyframe animation
<script>
function	
  onClickHandler(event)	
  {
var	
  stampElement	
  =	
  /*	
  get	
  the	
  element	
  */;
var	
  stampElement.style.webkitAnimation	
  =	
  “stamp-­‐it	
  0.5s”;
}
</script>
Saturday, March 9, 13
animation fill mode
0%	
  {	
  background-­‐color:	
  orange;	
  }
50%	
  {	
  background-­‐color:	
  white;	
  }
100%	
  {	
  background-­‐color:	
  orange;	
  }
}
div.square	
  {
width:100px;
height:100px;
-­‐webkit-­‐animation:pulse	
  2s;
-­‐webkit-­‐animation-­‐delay:1s;
}
@-­‐webkit-­‐keyframes	
  pulse	
  {
Saturday, March 9, 13
2 second pulse
1 second delay
animation fill mode
0%	
  {	
  background-­‐color:	
  orange;	
  }
50%	
  {	
  background-­‐color:	
  white;	
  }
100%	
  {	
  background-­‐color:	
  orange;	
  }
}
div.square	
  {
width:100px;
height:100px;
-­‐webkit-­‐animation:pulse	
  2s;
-­‐webkit-­‐animation-­‐delay:1s;
}
@-­‐webkit-­‐keyframes	
  pulse	
  {
Saturday, March 9, 13
2 second pulse
1 second delay
animation fill mode
0%	
  {	
  background-­‐color:	
  orange;	
  }
50%	
  {	
  background-­‐color:	
  white;	
  }
100%	
  {	
  background-­‐color:	
  orange;	
  }
}
div.square	
  {
width:100px;
height:100px;
-­‐webkit-­‐animation:pulse	
  2s;
-­‐webkit-­‐animation-­‐delay:1s;
-­‐webkit-­‐animation-­‐fill-­‐mode:backwards;
}
@-­‐webkit-­‐keyframes	
  pulse	
  {
Saturday, March 9, 13
@-­‐webkit-­‐keyframes	
  stamp-­‐it	
  {...}
<script>
function	
  	
  	
  onClickHandler(event)	
  	
  	
  {
var	
  stampElement	
  =	
  /*	
  code	
  to	
  get	
  the	
  element	
  */;
var	
  stampElement.style.webkitAnimation	
  =	
  “stamp-­‐it	
  0.5s	
  forwards”;
}
</script
<style>
animation fill mode
</style>
Saturday, March 9, 13
progress indicator
0%	
  {
-­‐webkit-­‐transform:rotate(0);
100%	
  {
-­‐webkit-­‐transform:rotate(360deg);
}
@-­‐webkit-­‐keyframes	
  outer	
  {
Saturday, March 9, 13
progress indicator
0%	
  {
-­‐webkit-­‐transform:rotate(5);
100%	
  {
-­‐webkit-­‐transform:rotate(365deg);
}
@-­‐webkit-­‐keyframes	
  inner	
  {
Saturday, March 9, 13
.outer_paw
{
-­‐webkit-­‐animation:outer	
  5s	
  infinite;
}
.inner_paw
{
-­‐webkit-­‐animation:inner	
  5s	
  0.4s	
  infinite;
}
progress indicator
Saturday, March 9, 13
.outer_paw
{
-­‐webkit-­‐animation:outer	
  5s	
  infinite;
-­‐webkit-­‐animation-­‐timing-­‐function:steps(10);
}
.inner_paw
{
-­‐webkit-­‐animation:inner	
  5s	
  0.4s	
  infinite;
-­‐webkit-­‐animation-­‐timing-­‐function:steps(10);
}
SteppedTiming function
Saturday, March 9, 13
applying a transition
.box
{
background-­‐color:white;
-­‐webkit-­‐transition:opacity	
  1s;
}
.box:hover
{
background-­‐color:orange;
}
Saturday, March 9, 13
.box
{
background-­‐color:white;
-­‐webkit-­‐animation:fade	
  1s;
}
@-­‐webkit-­‐keyframes	
  fade
{
from	
  {	
  background-­‐color:white;	
  }
from	
  {	
  background-­‐color:orange;	
  }
}
applying a keyframe animation
Saturday, March 9, 13
keyframe animation with multiple keyframes
.box
{
background-­‐color:white;
-­‐webkit-­‐animation:fade	
  1s;
}
@-­‐webkit-­‐keyframes	
  fade
{
from	
  {	
  background-­‐color:white;	
  }
50%	
  {	
  background-­‐color:	
  cyan	
  }
to	
  {	
  background-­‐color:orange;	
  }
}
Saturday, March 9, 13
repeating keyframe animation
.box
{
background-­‐color:white;
-­‐webkit-­‐animation:fade	
  1s;
-­‐webkit-­‐animation-­‐iteration-­‐count:infinite;
}
@-­‐webkit-­‐keyframes	
  fade
{
from	
  {	
  background-­‐color:white;	
  }
50%	
  {	
  background-­‐color:	
  cyan	
  }
to	
  {	
  background-­‐color:orange;	
  }
}
Saturday, March 9, 13
...and demo
Saturday, March 9, 13
http://www.flickr.com/photos/aturkus/4040454167
Saturday, March 9, 13
... and in the real life
Saturday, March 9, 13
web showcases
Saturday, March 9, 13
...and demo
Saturday, March 9, 13
Saturday, March 9, 13
responsive websites
suitable for any device
Saturday, March 9, 13
...and demo
Saturday, March 9, 13
jQuery frameworks
Saturday, March 9, 13
jQueryUI frameworks
Saturday, March 9, 13
Saturday, March 9, 13
Jaws HTML5 Javascript Game Lib
web game frameworks
Saturday, March 9, 13
Saturday, March 9, 13
...and demo
Saturday, March 9, 13
go to the heaven...
Saturday, March 9, 13
mobile development
Saturday, March 9, 13
references
Apple Safari Developer
https://developer.apple.com/devcenter/
safari/index.action
Smashing Magazine
Graphic, CSS and Web design
http://www.smashingmagazine.com
Ben Frain
Everything needed to code websites
in HTML5 and CSS3 that are
responsive to every device
Tuts+
Great web design tutorials and articles
http://webdesign.tutsplus.com
Saturday, March 9, 13
many thanks
to
thank you
lamvt@fpt.com.vn
please
say
tutsplus
https://developer.apple.com
developer
https://tutsplus.com
xin
chào
http://www.smashingmagazine.com
smashingmagazine
Saturday, March 9, 13

Mais conteúdo relacionado

Destaque

Crafting animation on the web
Crafting animation on the webCrafting animation on the web
Crafting animation on the webBenjy Stanton
 
Mastering CSS Animations
Mastering CSS AnimationsMastering CSS Animations
Mastering CSS AnimationsGoodbytes
 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web DesignVu Tran Lam
 
Introduction to iPhone Programming
Introduction to iPhone Programming Introduction to iPhone Programming
Introduction to iPhone Programming Vu Tran Lam
 
Building a Completed iPhone App
Building a Completed iPhone AppBuilding a Completed iPhone App
Building a Completed iPhone AppVu Tran Lam
 
HTML5 Web Standards
HTML5 Web StandardsHTML5 Web Standards
HTML5 Web StandardsVu Tran Lam
 
Succeed in Mobile career
Succeed in Mobile careerSucceed in Mobile career
Succeed in Mobile careerVu Tran Lam
 
Session 16 - Designing universal interface which used for iPad and iPhone
Session 16  -  Designing universal interface which used for iPad and iPhoneSession 16  -  Designing universal interface which used for iPad and iPhone
Session 16 - Designing universal interface which used for iPad and iPhoneVu Tran Lam
 
Session 15 - Working with Image, Scroll, Collection, Picker, and Web View
Session 15  - Working with Image, Scroll, Collection, Picker, and Web ViewSession 15  - Working with Image, Scroll, Collection, Picker, and Web View
Session 15 - Working with Image, Scroll, Collection, Picker, and Web ViewVu Tran Lam
 
Session 4 - Object oriented programming with Objective-C (part 2)
Session 4  - Object oriented programming with Objective-C (part 2)Session 4  - Object oriented programming with Objective-C (part 2)
Session 4 - Object oriented programming with Objective-C (part 2)Vu Tran Lam
 
Introduction to MVC in iPhone Development
Introduction to MVC in iPhone DevelopmentIntroduction to MVC in iPhone Development
Introduction to MVC in iPhone DevelopmentVu Tran Lam
 
Session 3 - Object oriented programming with Objective-C (part 1)
Session 3 - Object oriented programming with Objective-C (part 1)Session 3 - Object oriented programming with Objective-C (part 1)
Session 3 - Object oriented programming with Objective-C (part 1)Vu Tran Lam
 
Session 12 - Overview of taps, multitouch, and gestures
Session 12 - Overview of taps, multitouch, and gestures Session 12 - Overview of taps, multitouch, and gestures
Session 12 - Overview of taps, multitouch, and gestures Vu Tran Lam
 
CSS Animations & Transitions
CSS Animations & TransitionsCSS Animations & Transitions
CSS Animations & TransitionsEdward Meehan
 
Session 13 - Working with navigation and tab bar
Session 13 - Working with navigation and tab barSession 13 - Working with navigation and tab bar
Session 13 - Working with navigation and tab barVu Tran Lam
 
Session 14 - Working with table view and search bar
Session 14 - Working with table view and search barSession 14 - Working with table view and search bar
Session 14 - Working with table view and search barVu Tran Lam
 
Creating Beautiful CSS3 Animations - FITC Amsterdam 2016
Creating Beautiful CSS3 Animations - FITC Amsterdam 2016Creating Beautiful CSS3 Animations - FITC Amsterdam 2016
Creating Beautiful CSS3 Animations - FITC Amsterdam 2016Rami Sayar
 
Session 5 - Foundation framework
Session 5 - Foundation frameworkSession 5 - Foundation framework
Session 5 - Foundation frameworkVu Tran Lam
 
CSS3 Transforms Transitions and Animations
CSS3 Transforms Transitions and AnimationsCSS3 Transforms Transitions and Animations
CSS3 Transforms Transitions and AnimationsInayaili León
 

Destaque (20)

Crafting animation on the web
Crafting animation on the webCrafting animation on the web
Crafting animation on the web
 
Mastering CSS Animations
Mastering CSS AnimationsMastering CSS Animations
Mastering CSS Animations
 
Workshop Advance CSS3 animation
Workshop Advance CSS3 animationWorkshop Advance CSS3 animation
Workshop Advance CSS3 animation
 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web Design
 
Introduction to iPhone Programming
Introduction to iPhone Programming Introduction to iPhone Programming
Introduction to iPhone Programming
 
Building a Completed iPhone App
Building a Completed iPhone AppBuilding a Completed iPhone App
Building a Completed iPhone App
 
HTML5 Web Standards
HTML5 Web StandardsHTML5 Web Standards
HTML5 Web Standards
 
Succeed in Mobile career
Succeed in Mobile careerSucceed in Mobile career
Succeed in Mobile career
 
Session 16 - Designing universal interface which used for iPad and iPhone
Session 16  -  Designing universal interface which used for iPad and iPhoneSession 16  -  Designing universal interface which used for iPad and iPhone
Session 16 - Designing universal interface which used for iPad and iPhone
 
Session 15 - Working with Image, Scroll, Collection, Picker, and Web View
Session 15  - Working with Image, Scroll, Collection, Picker, and Web ViewSession 15  - Working with Image, Scroll, Collection, Picker, and Web View
Session 15 - Working with Image, Scroll, Collection, Picker, and Web View
 
Session 4 - Object oriented programming with Objective-C (part 2)
Session 4  - Object oriented programming with Objective-C (part 2)Session 4  - Object oriented programming with Objective-C (part 2)
Session 4 - Object oriented programming with Objective-C (part 2)
 
Introduction to MVC in iPhone Development
Introduction to MVC in iPhone DevelopmentIntroduction to MVC in iPhone Development
Introduction to MVC in iPhone Development
 
Session 3 - Object oriented programming with Objective-C (part 1)
Session 3 - Object oriented programming with Objective-C (part 1)Session 3 - Object oriented programming with Objective-C (part 1)
Session 3 - Object oriented programming with Objective-C (part 1)
 
Session 12 - Overview of taps, multitouch, and gestures
Session 12 - Overview of taps, multitouch, and gestures Session 12 - Overview of taps, multitouch, and gestures
Session 12 - Overview of taps, multitouch, and gestures
 
CSS Animations & Transitions
CSS Animations & TransitionsCSS Animations & Transitions
CSS Animations & Transitions
 
Session 13 - Working with navigation and tab bar
Session 13 - Working with navigation and tab barSession 13 - Working with navigation and tab bar
Session 13 - Working with navigation and tab bar
 
Session 14 - Working with table view and search bar
Session 14 - Working with table view and search barSession 14 - Working with table view and search bar
Session 14 - Working with table view and search bar
 
Creating Beautiful CSS3 Animations - FITC Amsterdam 2016
Creating Beautiful CSS3 Animations - FITC Amsterdam 2016Creating Beautiful CSS3 Animations - FITC Amsterdam 2016
Creating Beautiful CSS3 Animations - FITC Amsterdam 2016
 
Session 5 - Foundation framework
Session 5 - Foundation frameworkSession 5 - Foundation framework
Session 5 - Foundation framework
 
CSS3 Transforms Transitions and Animations
CSS3 Transforms Transitions and AnimationsCSS3 Transforms Transitions and Animations
CSS3 Transforms Transitions and Animations
 

Semelhante a 3D & Animation Effects Using CSS3 & jQuery

Senior design project code for PPG
Senior design project code for PPGSenior design project code for PPG
Senior design project code for PPGFrankDin1
 
QA Auotmation Java programs,theory
QA Auotmation Java programs,theory QA Auotmation Java programs,theory
QA Auotmation Java programs,theory archana singh
 
assign4assign4_part1bonnie.c This is a file system ben.docx
assign4assign4_part1bonnie.c  This is a file system ben.docxassign4assign4_part1bonnie.c  This is a file system ben.docx
assign4assign4_part1bonnie.c This is a file system ben.docxfestockton
 
C++ & Java JIT Optimizations: Finding Prime Numbers
C++ & Java JIT Optimizations: Finding Prime NumbersC++ & Java JIT Optimizations: Finding Prime Numbers
C++ & Java JIT Optimizations: Finding Prime NumbersAdam Feldscher
 
Add a 3rd field help that contains a short help string for each of t.pdf
Add a 3rd field help that contains a short help string for each of t.pdfAdd a 3rd field help that contains a short help string for each of t.pdf
Add a 3rd field help that contains a short help string for each of t.pdfinfo245627
 
An Introduction to the World of Testing for Front-End Developers
An Introduction to the World of Testing for Front-End DevelopersAn Introduction to the World of Testing for Front-End Developers
An Introduction to the World of Testing for Front-End DevelopersFITC
 
FITC Web Unleashed 2017 - Introduction to the World of Testing for Front-End ...
FITC Web Unleashed 2017 - Introduction to the World of Testing for Front-End ...FITC Web Unleashed 2017 - Introduction to the World of Testing for Front-End ...
FITC Web Unleashed 2017 - Introduction to the World of Testing for Front-End ...Haris Mahmood
 
program on string in java Lab file 2 (3-year)
program on string in java Lab file 2 (3-year)program on string in java Lab file 2 (3-year)
program on string in java Lab file 2 (3-year)Ankit Gupta
 
UNIT I- Session 3.pptx
UNIT I- Session 3.pptxUNIT I- Session 3.pptx
UNIT I- Session 3.pptxabcdefgh690537
 
Design patterns in javascript
Design patterns in javascriptDesign patterns in javascript
Design patterns in javascriptMiao Siyu
 
Sorting programs
Sorting programsSorting programs
Sorting programsVarun Garg
 

Semelhante a 3D & Animation Effects Using CSS3 & jQuery (13)

Senior design project code for PPG
Senior design project code for PPGSenior design project code for PPG
Senior design project code for PPG
 
QA Auotmation Java programs,theory
QA Auotmation Java programs,theory QA Auotmation Java programs,theory
QA Auotmation Java programs,theory
 
assign4assign4_part1bonnie.c This is a file system ben.docx
assign4assign4_part1bonnie.c  This is a file system ben.docxassign4assign4_part1bonnie.c  This is a file system ben.docx
assign4assign4_part1bonnie.c This is a file system ben.docx
 
C++ & Java JIT Optimizations: Finding Prime Numbers
C++ & Java JIT Optimizations: Finding Prime NumbersC++ & Java JIT Optimizations: Finding Prime Numbers
C++ & Java JIT Optimizations: Finding Prime Numbers
 
Add a 3rd field help that contains a short help string for each of t.pdf
Add a 3rd field help that contains a short help string for each of t.pdfAdd a 3rd field help that contains a short help string for each of t.pdf
Add a 3rd field help that contains a short help string for each of t.pdf
 
An Introduction to the World of Testing for Front-End Developers
An Introduction to the World of Testing for Front-End DevelopersAn Introduction to the World of Testing for Front-End Developers
An Introduction to the World of Testing for Front-End Developers
 
FITC Web Unleashed 2017 - Introduction to the World of Testing for Front-End ...
FITC Web Unleashed 2017 - Introduction to the World of Testing for Front-End ...FITC Web Unleashed 2017 - Introduction to the World of Testing for Front-End ...
FITC Web Unleashed 2017 - Introduction to the World of Testing for Front-End ...
 
program on string in java Lab file 2 (3-year)
program on string in java Lab file 2 (3-year)program on string in java Lab file 2 (3-year)
program on string in java Lab file 2 (3-year)
 
UNIT I- Session 3.pptx
UNIT I- Session 3.pptxUNIT I- Session 3.pptx
UNIT I- Session 3.pptx
 
ES6
ES6ES6
ES6
 
PRACTICAL COMPUTING
PRACTICAL COMPUTINGPRACTICAL COMPUTING
PRACTICAL COMPUTING
 
Design patterns in javascript
Design patterns in javascriptDesign patterns in javascript
Design patterns in javascript
 
Sorting programs
Sorting programsSorting programs
Sorting programs
 

Mais de Vu Tran Lam

Session 9-10 - UI/UX design for iOS 7 application
Session 9-10 - UI/UX design for iOS 7 applicationSession 9-10 - UI/UX design for iOS 7 application
Session 9-10 - UI/UX design for iOS 7 applicationVu Tran Lam
 
Session 8 - Xcode 5 and interface builder for iOS 7 application
Session 8 - Xcode 5 and interface builder for iOS 7 applicationSession 8 - Xcode 5 and interface builder for iOS 7 application
Session 8 - Xcode 5 and interface builder for iOS 7 applicationVu Tran Lam
 
Session 7 - Overview of the iOS7 app development architecture
Session 7 - Overview of the iOS7 app development architectureSession 7 - Overview of the iOS7 app development architecture
Session 7 - Overview of the iOS7 app development architectureVu Tran Lam
 
Session 2 - Objective-C basics
Session 2 - Objective-C basicsSession 2 - Objective-C basics
Session 2 - Objective-C basicsVu Tran Lam
 
iOS 7 Application Development Course
iOS 7 Application Development CourseiOS 7 Application Development Course
iOS 7 Application Development CourseVu Tran Lam
 
Session 1 - Introduction to iOS 7 and SDK
Session 1 -  Introduction to iOS 7 and SDKSession 1 -  Introduction to iOS 7 and SDK
Session 1 - Introduction to iOS 7 and SDKVu Tran Lam
 
Android Application Development Course
Android Application Development Course Android Application Development Course
Android Application Development Course Vu Tran Lam
 
Your Second iPhone App - Code Listings
Your Second iPhone App - Code ListingsYour Second iPhone App - Code Listings
Your Second iPhone App - Code ListingsVu Tran Lam
 

Mais de Vu Tran Lam (8)

Session 9-10 - UI/UX design for iOS 7 application
Session 9-10 - UI/UX design for iOS 7 applicationSession 9-10 - UI/UX design for iOS 7 application
Session 9-10 - UI/UX design for iOS 7 application
 
Session 8 - Xcode 5 and interface builder for iOS 7 application
Session 8 - Xcode 5 and interface builder for iOS 7 applicationSession 8 - Xcode 5 and interface builder for iOS 7 application
Session 8 - Xcode 5 and interface builder for iOS 7 application
 
Session 7 - Overview of the iOS7 app development architecture
Session 7 - Overview of the iOS7 app development architectureSession 7 - Overview of the iOS7 app development architecture
Session 7 - Overview of the iOS7 app development architecture
 
Session 2 - Objective-C basics
Session 2 - Objective-C basicsSession 2 - Objective-C basics
Session 2 - Objective-C basics
 
iOS 7 Application Development Course
iOS 7 Application Development CourseiOS 7 Application Development Course
iOS 7 Application Development Course
 
Session 1 - Introduction to iOS 7 and SDK
Session 1 -  Introduction to iOS 7 and SDKSession 1 -  Introduction to iOS 7 and SDK
Session 1 - Introduction to iOS 7 and SDK
 
Android Application Development Course
Android Application Development Course Android Application Development Course
Android Application Development Course
 
Your Second iPhone App - Code Listings
Your Second iPhone App - Code ListingsYour Second iPhone App - Code Listings
Your Second iPhone App - Code Listings
 

Último

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 

Último (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 

3D & Animation Effects Using CSS3 & jQuery