动画操作也是jquery一个很突出的点,特别方法,赶紧学习一下吧:
动画
- jQuery提供的一组网页中常见的动画效果,这些动画是标准的、有规律的效果;同时还提供给我们了自定义动画的功能。
动画的显示和隐藏
+_ show()_:让匹配的元素展示出来
//第一种: 带参,一个参数,数值,毫秒值。
$("button:eq(0)").click(function () {
//显示盒子
$("div").show(1000); //所有属性在1秒内变为初始化值。display: block;
});
//第二种; 带参,一个参数,字符串,slow,normal,fast。600/400/200
$("button:eq(0)").click(function () {
//显示盒子
$("div").show("normal"); //所有属性在1秒内变为初始化值。display: block;
});
//第三种; 带参,两个参数,时间和回调函数
$("button:eq(0)").click(function () {
//显示盒子
$("div").show(1000, function () {
alert("动画执行完毕!");
$("div").hide();
}); //所有属性在1秒内变为初始化值。display: block;
});
//第四种; 无参,类似$("div").css("display","block");
$("button:eq(0)").click(function () {
//显示盒子
$("div").show(); //所有属性在1秒内变为初始化值。display: block;
$("div").css("display","block"); //所有属性在1秒内变为初始化值。display: block;
});
- hide():让匹配的元素隐藏掉
//第一种;带参,一个参数,数值,毫秒值。
$("button:eq(1)").click(function () {
//隐藏盒子
$("div").hide(1000); //所有属性在1秒内变为初始化值。display: block;
});
//第二种; 带参,一个参数,字符串,slow,normal,fast。600/400/200
$("button:eq(1)").click(function () {
//隐藏盒子
$("div").hide("fast"); //所有属性在1秒内变为初始化值。display: block;
});
//第三种; 带参,两个参数,时间和回调函数
$("button:eq(1)").click(function () {
//隐藏盒子
$("div").hide(1000, function () {
alert("动画执行完毕!");
$("div").show();
}); //所有属性在1秒内变为初始化值。display: block;
});
//第四种; 无参,类似$("div").css("display","none");
$("button:eq(1)").click(function () {
//隐藏盒子
$("div").hide(); //所有属性在1秒内变为初始化值。display: block;
$("div").css("display","none"); //所有属性在1秒内变为初始化值。display: block;
});
- toggle():切换匹配的元素
//第一种; 带参,一个参数,数值,毫秒值。
$("button:eq(2)").click(function () {
//切换盒子状态
$("div").toggle(1000); //切换
});
//第二种; 带参,一个参数,字符串,slow,normal,fast。600/400/200
$("button:eq(2)").click(function () {
//切换盒子状态
$("div").toggle("fast"); //切换
});
//第三种; 带参,两个参数,时间和回调函数
$("button:eq(2)").click(function () {
//切换盒子状态
$("div").toggle(1000, function () {
alert("动画执行完毕!");
}); //切换
});
//第四种; 无参
$("button:eq(2)").click(function () {
//切换盒子状态
$("div").toggle(); //切换
});
动画的滑入和滑出
- 滑入_slideDown()_:让元素以下拉动画效果展示出来
//第一种; 带参,一个参数,数值,毫秒值。
$("button:eq(0)").click(function () {
//滑入
$("div").slideDown(1000);
});
//第二种; 带参,一个参数,字符串,slow,normal,fast。600/400/200
$("button:eq(0)").click(function () {
//滑入
$("div").slideDown("fast");
});
//第三种; 带参,两个参数,时间和回调函数
$("button:eq(0)").click(function () {
//滑入
$("div").slideDown(1000, function () {
alert("动画执行完毕!");
});
});
//第四种; 无参
$("button:eq(0)").click(function () {
//正常速度滑出
$("div").slideDown();
});
- 滑出_slideUp()_:让元素以上拉动画效果隐藏起来
//第一种; 带参,一个参数,数值,毫秒值。
$("button:eq(1)").click(function () {
//滑出
$("div").slideUp(1000);
});
//第二种; 带参,一个参数,字符串,slow,normal,fast。600/400/200
$("button:eq(1)").click(function () {
//滑出
$("div").slideUp("fast");
});
//第三种; 带参,两个参数,时间和回调函数
$("button:eq(1)").click(function () {
//滑出
$("div").slideUp(1000, function () {
alert("动画执行完毕!");
});
});
//第四种; 无参
$("button:eq(1)").click(function () {
//正常速度滑出
$("div").slideUp();
});
- 切换_slideToggle()_:滑入滑出切换动画效果
//第一种; 带参,一个参数,数值,毫秒值。
$("button:eq(2)").click(function () {
//切换
$("div").slideToggle(1000);
});
//第二种; 带参,一个参数,字符串,slow,normal,fast。600/400/200
$("button:eq(2)").click(function () {
//切换
$("div").slideToggle("fast");
});
//第三种; 带参,两个参数,时间和回调函数
$("button:eq(2)").click(function () {
//切换
$("div").slideToggle(1000, function () {
alert("动画执行完毕!");
});
});
//第四种; 无参
$("button:eq(2)").click(function () {
//切换
$("div").slideToggle();
});
动画的淡入和淡出和淡至
- 淡入_fadeIn()_:让元素以淡淡的进入视线的方式展示出来
//第一种; 带参,一个参数,数值,毫秒值。
$("button:eq(0)").click(function () {
//淡入
$("div").fadeIn(1000);
});
//第二种; 带参,一个参数,字符串,slow,normal,fast。600/400/200
$("button:eq(0)").click(function () {
//淡入
$("div").fadeIn("fast");
});
//第三种; 带参,两个参数,时间和回调函数
$("button:eq(0)").click(function () {
//淡入
$("div").fadeIn(2000, function () {
alert("动画执行完毕!");
});
});
//第四种; 无参
$("button:eq(0)").click(function () {
//正常速度淡入
$("div").fadeIn();
});
- 淡出_fadeOut()_:让元素以渐渐消失的方式隐藏起来
//第一种; 带参,一个参数,数值,毫秒值。
$("button:eq(1)").click(function () {
//淡出
$("div").fadeOut(1000);
});
//第二种; 带参,一个参数,字符串,slow,normal,fast。600/400/200
$("button:eq(1)").click(function () {
//淡出
$("div").fadeOut("fast");
});
//第三种; 带参,两个参数,时间和回调函数
$("button:eq(1)").click(function () {
//淡出
$("div").fadeOut(2000, function () {
alert("动画执行完毕!");
});
});
//第四种; 无参
$("button:eq(1)").click(function () {
//正常速度淡出
$("div").fadeOut();
});
- 切换_fadeToggle()_:通过改变透明度,切换匹配元素的显示或隐藏状态
//第一种; 带参,一个参数,数值,毫秒值。
$("button:eq(2)").click(function () {
//切换
$("div").fadeToggle(2000);
});
//第二种; 带参,一个参数,字符串,slow,normal,fast。600/400/200
$("button:eq(2)").click(function () {
//切换
$("div").fadeToggle("fast");
});
//第三种; 带参,两个参数,时间和回调函数
$("button:eq(2)").click(function () {
//切换
$("div").fadeToggle(1000, function () {
alert("动画执行完毕!");
});
});
//第四种; 无参
$("button:eq(2)").click(function () {
//正常速度切换
$("div").fadeToggle();
});
-
注意:除此之外,fade还有一个是淡至,改变透明度到某个值。与淡入淡出的区别:淡入淡出只能控制元素的不透明度从 完全不透明 到完全透明;而fadeTo可以指定元素不透明度的具体值。并且时间参数是必需的!
-
淡至_fadeTo()_:调节匹配元素的不透明度
//第一种;
$("button:eq(3)").click(function () {
//正常速度切换
$("div").fadeTo(1000,0.5);
});
//第二种;
$("button:eq(3)").click(function () {
//正常速度切换
$("div").fadeTo(1000,0.5, function () {
alert("动画执行完毕!");
});
});
动画总结
自定义动画
- 所有能够执行动画的属性必须只有一个数字类型的值。
- 要改变字体大小,要使用:fontSize(font-size),不要使用:font
//一种; 带参,两个或三个参数,json时间和回调函数。
$("button:eq(0)").click(function () {
var json1 = {"width":50,"height":50,"border-radius":25,"top":300,"left":300}
var json2 = {"width":100,"height":50,"border-radius":0,"top":100,"left":30,"
background":"red"}
//两个或三个参数,json时间和回调函数。
$("div").animate(json1,2000, function () {
$("div").animate(json2,2000, function () {
alert("函数执行完毕!");
});
});
});
停止动画
- stop():停止当前正在执行的动画
- 如果一个以上的动画方法在同一个元素上调用,那么对这个元素来说,后面的动画将被放到效果队列中。这样就形成了动画队列。(联想:排队进站)
- 动画队列里面的动画不会执行,直到第一个动画执行完成。
// 第一个参数表示是否清空所有的后续动画
// 第二个参数表示是否立即执行完当前正在执行的动画
// 第一个参数表示后续动画是否要停止
//(true:后续动画不执行;false:后续动画会执行)
// 第二个参数表示当前动画是否执行完完毕
//(true:立即执行完成当前动画 ;false:立即停止当前动画)
$(selector).stop(clearQueue,jumpToEnd);
- 看一看
//滑入滑出
$("button:eq(0)").click(function () {
//正常速度滑出
$("div").slideToggle(2000);
});
//停止动画
$("button:eq(1)").click(function () {
//停止动画,什么都不写,默认为两个参数都是false;
//当前动画立刻停止,后续动画照样执行。
$("div").stop();
// 第一个参数表示后续动画是否要停止
//(true:后续动画不执行;false:后续动画会执行)
// 第二个参数表示当前动画是否执行完完毕
//(true:立即执行完成当前动画;false:立即停止当前动画)
//false,false; 后续动画会执行,立即停止当前动画
$("div").stop(false,false);
//false,true; 后续动画会执行,立即执行完成当前动画
$("div").stop(false,true);
//true,false; 后续动画不执行,立即停止当前动画
$("div").stop(true,false);
//true,false; 后续动画不执行,立即执行完成当前动画
$("div").stop(true,true);
});
- 如果元素动画还没有执行完,此时调用sotp()方法,那么动画将会停止。并且动画没有执行完成,那么回调函数也不会被执行。
注意点
- 为了避免冒泡,使用mouseenter和mouseleave代替mouseover和mouseout。
- opacity透明度和rgba透明度有什么不同?
- opacity作用于元素,以及元素内所有内容的透明度。
- rgba只作用于元素的颜色或者背景色。设置rgba透明的元素的子元素不会继承透明效果。
- show()/hide()/slideDown()/slideUp()/fadeIn()/fadeOut()/fadeTo()不会把之前定义的方法层叠掉,先定义的先执行。
如果本文有什么错误,欢迎留言指正! 希望看到本文的您,看完本文会您有所帮助! 如果觉得还不错,点个赞哦!