jQuery中的动画

来源:互联网 发布:淘宝考试答题器 编辑:程序博客网 时间:2024/04/30 22:03

首先,用jQuery做动画效果要求在标准模式下,否则可能会引起动画抖动。标准模式即要求文件头部包含如下的DTD定义:

<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"">

一、最常用的动画方法,show()hide()方法

示例代码:

<span style="font-size:14px;">$("div").hide();$("div").show();</span>
上面示例为show()和hide()方法不带任何参数的情况下,作用是立即隐藏或显示匹配的元素,不会有任何动画。如果给方法指定一个速度参数,就可以让元素动起来。如下代码使元素在500ms中完成动画
$("div").hide(500);$("div").show(500);
此外速度参数还有一些推荐值,如:

$("div").show("slow");//600ms$("div").show("normal");//400ms$("div").show("fast");//200ms

下面就用这两个方法实现点击按钮一次内容慢慢消失,当再次单击按钮内容慢慢的显示

$(".btn").click(function() {if ($(".newsInfo").is(":visible")) {//如果为显示状态$(".newsInfo").hide(500);} else {$(".newsInfo").show(500);}});

说明:当为一个元素调用hide()方法时,会将该元素的display样式改为"none",但是在这之前会先记住原先的display属性值("block"或"inline"或其他除了"none"之外的值)。当调用show()方法时,就会根据hide()方法记住的display属性值来显示元素。

二、fadeIn()方法和fadeOut()方法

与show()方法不相同的是这两个方法只改变元素的不透明度。fadeOut(0方法会在指定的一段时间内降级元素的不透明度,直到元素完全消失("display:none")。fadeIn()方法则相反。

下面就用这两个方法实现点击按钮一次内容慢慢消失,当再次单击按钮内容慢慢的显示

$(".btn").toggle(function() {$(this).next(".newsInfo").fadeOut(500);}, function() {$(this).next(".newsInfo").fadeIn(500);});
三、slideUp()方法和slideDown()方法

这两个方法只会改变元素的高度。如果一个元素的display属性值为"none",当调用slideDown()方法时,这个元素将由上至下延伸显示。slideUp()方法正好相反,元素将由下倒上缩短隐藏。

下面就用这两个方法实现鼠标箭头移动到按钮上时内容向下出现,当鼠标的箭头移出按钮时内容向上退出显示

$(".btn").hover(function() {$(".newsInfo").stop(true).slideDown(500);}, function() {$(".newsInfo").stop(true).slideUp(500);});
其中用到了一个stop()方法,它的语法结构为:stop([clearQueue] [, gotoEnd]);

参数clearQueuegotoEnd都是可选参数,为布尔值。clearQueue代表是否要清空未执行完的动画队列,gotoEnd代表是否直接将正在执行的动画跳转到末状态。如果直接使用stop()方法,则会立即停止当前正在进行的动画。

四、自定义简单动画animate()

语法结构:animate(params,speed,callback);

参数说明:params:一个包含样式属性及值的映射,比如{property1:"value1",property2:"value2", ...}

               speed:速度参数,可选

               callback:在动画完成时执行的函数,可选

$(".btn").click(function() {$(this).animate({left: "300px",height: "200px"}, 1000, function() {console.log('回调了');                //在效果完成后做其他事情        });});
五、其他动画方法

①toggle(speed,[callback])

$(".btn").toggle(500, function() {console.log('我是回调函数');});
②slideToggle(speed,[callback])

<span style="font-size:14px;">$(".btn").click(function(){$(".mycontent").slideToggle();});</span>

③fadeTo(speed,opacity,[callback])

$(".btn").click(function(){$(".mycontent").fadeTo(500,0.2);});


0 0
原创粉丝点击