动画DOM及其CSS的操作
- 原理
我们需要以固定的时间间隔(如0.1s),每次DOM元素的CSS样式修改一点点(如宽和高增加10%),看起来就像动画了。 - jQuery封装了三类动画函数。1.show(),hide(),toggle()。控制了目标元素的宽、高、透明度三个CSS属性。2.fadeIn(),fadeout(),fadeToggle(),不控制宽高,只控制透明度。3.slideDown(),slideUp(),slideToggle(),控制高度和透明度,不控制宽度
自定义动画
animate()
可以实现任意动画效果,需要传递的参数量DOM元素最终的CSS状态和时间。
语法:
$(selector).animate(styles,speed,easing,callback)
如:
var div = $('#test');
div.animate({opacity:0.25,
width:'256px',
height:'256px'},3000);
参数:
speed
可选。规定元素从隐藏到完全可见的速度。默认为 "0"。
可能的值:
毫秒 (比如 1500)
"slow"
"normal"
"fast"
在设置速度的情况下,元素从隐藏到完全可见的过程中,会逐渐地改变其高度、宽度、外边距、内边距和透明度。callback
可选。show 函数执行完之后,要执行的函数。
stop()
stop() 方法停止当前正在运行的动画。
语法:
$(selector).stop(stopAll,goToEnd)
- stopAll 可选。规定是否停止被选元素的所有加入队列的动画。
- goToEnd 可选。规定是否允许完成当前的动画。该参数只能在设置了 stopAll 参数时使用。
delay()
delay() 方法对队列中的下一项的执行设置延迟。
语法:
$(selector).delay(speed,queueName)
- speed 可选。规定延迟的速度。
可能的值:- 毫秒
- "slow"
- "fast"
- queueName 可选。规定队列的名称。默认是 "fx",标准效果队列。
show()/hide()
直接以无参形式调用show()和hide(),会显示和隐藏DOM元素,但是只要传递一个时间参数进去,就成了动画
语法:
$(selector).show(speed,callback)
例如:
var div = $('#test-hide');
div.hide(2000);//在2秒内逐渐消失
参数:
- speed
可选。规定元素从隐藏到完全可见的速度。默认为 "0"。
可能的值:
毫秒 (比如 1500)
"slow"
"normal"
"fast"
在设置速度的情况下,元素从隐藏到完全可见的过程中,会逐渐地改变其高度、宽度、外边距、内边距和透明度。 - callback
可选。show 函数执行完之后,要执行的函
除非设置了 speed 参数,否则不能设置该参数。
toggle()
根据当前状态决定是show()和hide()
语法:
$(selector).toggle(speed,callback,switch)
参数:
speed
可选。规定元素从可见到隐藏的速度(或者相反)。默认为 "0"。
可能的值:
毫秒 (比如 1500)
"slow"
"normal"
"fast"
在设置速度的情况下,元素从可见到隐藏的过程中,会逐渐地改变其高度、宽度、外边距、内边距和透明度。
如果设置此参数,则无法使用 switch 参数。callback
可选。toggle 函数执行完之后,要执行的函数。
除非设置了 speed 参数,否则不能设置该参数。switch
可选。布尔值。规定 toggle 是否隐藏或显示所有被选元素。
True - 显示所有元素
False - 隐藏所有元素
如果设置此参数,则无法使用 speed 和 callback 参数。
fadein()/fadeout()淡入淡出
也是通过不断设置opacity属性来实现,只控制透明度
属性和用法与show()/hide()相同
fadeToggle()
根据元素是否可见来决定下一动作
属性和用法和toggle()相同,只控制透明度
slideUp()/slideDown()
slideDown():显示;slideUp():消失。类似于卷闸门。常用于下拉菜单效果。slideToggle(),整体是个百叶窗效果。
语法:
$(selector).slideUp(speed,callback)
参数:
- speed
和前面的speed一样 - callback
和前面的callback一样
通过使用滑动效果(高度变化)来切换元素的可见状态。
slideToggle()
如果被选元素是可见的,则隐藏这些元素,如果被选元素是隐藏的,则显示这些元素。
$(selector).slideToggle(speed,callback)
参数同上
计时器
setTimeout()和setInterval()
语法:
setTimeout(code,millisec)
方法用于在指定的毫秒数后调用函数或计算表达式
- setTimeout() 只执行 code 一次。如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()。