jquerycss3动画(jquery实现动画效果)

CSS3的动画的意义何在1、在性能上会稍微好一些,CSS3使用GPU,浏览器还会对CSS3的动画做一些优化(比如专门新建一个图层用来跑动画)。2、代码相对简单,在现代 PC 浏览器上,CSS3 Animation 和 Transition 好写好用,流畅丝滑,而且动画过程0 GC。3、CSS3 比 jQuery animate() 更...

CSS3的动画的意义何在

1、在性能上会稍微好一些,CSS3使用GPU,浏览器还会对CSS3的动画做一些优化(比如专门新建一个图层用来跑动画)。

2、代码相对简单,在现代 PC 浏览器上,CSS3 Animation 和 Transition 好写好用,流畅丝滑,而且动画过程0 GC。

3、CSS3 比 jQuery animate() 更流畅,更快,更效率。

4、CSS3 更倾向于实现交互效果和界面建设。

但其缺点也很明显:

1、在动画控制上不够灵活。

2、兼容性不好。

3、部分动画功能无法实现。

所以,在实现一些小的交互动效的时候,就多考虑考虑CSS吧。 而在需要兼容性很好并且有复杂的事件响应的情况下使用jQuery中的animate()函数。

css3怎么实现高度从固定到自动的过渡动画

transition

  css3的transition允许css的属性值在一定的时间区间内平滑地过渡。这种效果可以在鼠标单击、获得焦点、被点击或对元素任何改变中触发,并圆滑地以动画效果改变CSS的属性值

  transition-property:检索或设置对象中的参与过渡的属性

  transition-duration:检索或设置对象过渡的持续时间

  transition-delay:检索或设置对象延迟过渡的时间

  transition-timing-function:检索或设置对象中过渡的动画类型

  简写:

  transition:all/具体属性值 运动时间s/ms 延迟时间s/ms 动画类型

  transition-timing-function:检索或设置对象中过渡的动画类型

  

  贝塞尔曲线:

  属性值:cubic-bezier()贝塞尔曲线网址:http://cubic-bezier.com/逐帧动画:transition-timing-function:steps(动画执行的步数);

  CSS3 2D

  transform

  transform的属性包括:rotate() / skew() / scale() / translate(,) ,分别还有x、y之分,比如:rotatex() 和 rotatey()

  1、translate()

  将元素向指定的方向移动,类似于position中的relative。

  水平移动:向右移动translate(tx,0)和向左移动translate(-tx,0);

  垂直移动:向上移动translate(0,-ty)和向下移动translate(0,ty);

  对角移动:右下角移动translate(tx,ty)、右上角移动translate(tx,-ty)、左上角移动translate(-tx,-ty)和左下角移动translate(-tx,ty)。

  translateX():水平方向移动一个对象。对像只向X轴进行移动,如果值为正值,对像向右移动;如果值为负值,对像向左移动。translateY():纵轴方向移动一个对象。对象只向Y轴进行移动,如果值为正值,对象向下移动;如果值为负值,对像向上移动。

  这两个函数和前面介绍的translate()函数不同的是每个方法只接受一个值。

  所以

  transform:translate(-100px,0)实际上等于transform:translateX(-100px);

  transform:translate(0,-100px)实际上等于transform:translateY(-100px)。

  2、scale()

  让元素根据中心原点对对象进行缩放。默认的值1。因此0.01到0.99之间的任何值,使一个元素缩小;而任何大于或等于1.01的值,让元素显得更大。

  缩放scale()函数和translate()函数的语法非常相似,他可以接受一个值,也可以同时接受两个值,如果只有一个值时,其第二个值默认与第一个值相等。

  例如,

  scale(1,1)元素不会有任何变化,而scale(2,2)让元素沿X轴和Y轴放大两倍。

  scaleX():相当于scale(sx,1)。表示元素只在X轴(水平方向)缩放元素,其默认值是1。

  scaleY():相当于scale(1,sy)。表示元素只在Y轴(纵横方向)缩放元素,其默认值是1。

  3、rotate()

  旋转rotate()函数通过指定的角度参数对元素根据对象原点指定一个2D旋转。它主要在二维空间内进行操作,接受一个角度值,用来指定旋转的幅度。如果这个值为正值,元素相对原点中心顺时针旋转;如果这个值为负值,元素相对原点中心逆时针旋转。

  rotateX() 方法,元素围绕其 X 轴以给定的度数进行旋转

  rotateY() 方法,元素围绕其 Y 轴以给定的度数进行旋转

  4、skew()

  倾斜skew()函数能够让元素倾斜显示。它可以将一个对象以其中心位置围绕着X轴和Y轴按照一定的角度倾斜。

  一个参数时:表示水平方向的倾斜角度;

  两个参数时:第一个参数表示水平方向的倾斜角度,第二个参数表示垂直方向的倾斜角度

  

  transform-origin

  transform-origin是变形原点,也就是该元素围绕着那个点变形或旋转,该属性只有在设置了transform属性的时候起作用;

  因为我们元素默认基点就是其中心位置,换句话说我们没有使用transform-origin改变元素基点位置的情况下,transform进行的rotate,translate,scale,skew等操作都是以元素自己中心位置进行变化的。

  2D 转换元素能够改变元素 x 和 y 轴

只说思路,其他请结合教程文档:

1、既然是动画就必须有明确的起始值和结束值。

首先要得到这个dom的实际高度,作为自适应的值,如何得到?

div p ../p /div

第一层div高度默认固定或者为0都行,这时p标签是能获取到真实高度的,把p的高度传给div就行了,要注意如果存在图片、外联资源时需要监听这些资源是否加载完毕

高度这个需要计算dom的实际高度

2、动画如何实现

jquery也行,css3也行

相关推荐