jQuery学习小结2——动画
一、基础动画
|
方法名 |
说明 |
| show([speed,[easing],[fn]]) hide([speed,[easing],[fn]]) |
|
| toggle([speed],[easing],[fn]) |
用来替代hide()方法和show()方法,响应被选元素的轮流的 click 事件。如果元素是可见的,切换为隐藏的;如果元素是隐藏的,切换为可见的。 |
|
slideUp([speed],[easing],[fn]) slideDown([speed],[easing],[fn]) |
这个动画效果只调整元素的高度,其他参数同show |
|
slideToggle() |
用来代替slideUp()和slideDown()方法,所以只能改变高度 |
|
fadeIn([speed],[easing],[fn]) fadeOut([speed],[easing],[fn]) fadeToggle([speed,[easing],[fn]]) |
|
|
fadeTo([[speed],opacity,[easing],[fn]]) |
|
1、显示、隐藏
.hide()方法其实就是在行内设置CSS 代码:display:none; 而.show()方法要根据原来元素是区块还是内联来决定,如果是区块,则设置CSS 代码:display:block; 如果是内联,则设置CSS 代码:display:inline;
$('.show').click(function () {
$('#box').show('slow', function () {
alert('动画持续完毕后,执行我!');
});
});
//列队动画,使用函数名调用自身
$('.show').click(function () {
$('div').first().show('fast', function showSpan() {
$(this).next().show('fast', showSpan);
});
});
//列队动画,使用arguments.callee 匿名函数自调用
$('.hide').click(function () {
$('div').last().hide('fast', function() {
$(this).prev().hide('fast', arguments.callee);
});
});
1.2 滑动、卷动
滑动、卷动效果和显示、隐藏效果一样,具有相同的参数。
1.3 淡入、淡出
- 淡入、淡出效果和显示、隐藏效果一样,具有相同的参数
- 对于.fadeTo()方法,如果本身透明度大于指定值,会淡出,否则相反
$('.toggle').click(function () {
$('#box').fadeTo('slow', 0.33); //0.33 表示值为33
});
二、自定义动画
animate(params,[speed],[easing],[fn])
- params:一组包含作为动画属性和终值的样式属性和及其值的集合
- speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)
- easing:要使用的擦除效果的名称(需要插件支持).默认jQuery提供"linear" 和 "swing".
- fn:在动画完成时执行的函数,每个元素执行一次。
2.1 操作多个属性——params
$("button").click(function(){
$("div").animate({
left:'250px',
opacity:'0.5',
height:'150px',
width:'150px'
});
});
- 默认情况下,所有 HTML 元素的位置都是静态的,并且无法移动。如需对位置进行操作,记得首先把元素的 CSS position 属性设置为 relative、fixed 或 absolute
- 色彩动画并不包含在核心 jQuery 库中。如果需要生成颜色动画,需要从 jQuery.com 下载 Color Animations 插件
2.2 使用相对值——在值的前面加上 += 或 -=
$("button").click(function(){
$("div").animate({
left:'250px',
height:'+=150px',
width:'+=150px'
});
});
自定义动画中,每次开始运动都必须是初始位置或初始状态,而有时我们想通过当前位置或状态下再进行动画,这个时候就可以使用相对值
2.3 使用预定义的值——"show"、"hide" 或 "toggle"
$("button").click(function(){
$("div").animate({
height:'toggle'
});
});
2.4 使用队列功能
自定义实现列队动画的方式,有两种:
- 在回调函数中再执行一个动画——同一个元素,或不同元素
- 通过连缀或顺序来实现列队动画——同一个元素
//1. 通过依次顺序实现列队动画 —— 注意:如果不是同一个元素,就会实现同步动画
$('.animate').click(function () {
$('#box').animate({'left' : '100px'});
$('#box').animate({'top' : '100px'});
$('#box').animate({'width' : '300px'});
});
//2. 通过连缀实现列队动画
$('.animate').click(function () {
$('#box').animate({
'left' : '100px'
}).animate({
'top' : '100px'
}).animate({
'width' : '300px'
});
});
//3. 通过回调函数实现列队动画
$('.animate').click(function () {
$('#box').animate({
'left' : '100px'
}, function () {
$('#box').animate({
'top' : '100px'
}, function () {
$('#box').animate({
'width' : '300px'
});
});
});
});
2.4 其他函数
① stop([queue],[clearQueue],[jumpToEnd])
- queue:用来停止动画的队列名称
- clearQueue:如果设置成true,则清空队列。可以立即结束动画
- jumpToEnd:如果设置成true,则完成队列。可以立即完成动画
$(document).ready(function(){
$("#start").click(function(){
$("div").animate({left:'100px'},5000);
$("div").animate({fontSize:'3em'},5000);
});
$("#stop").click(function(){
$("div").stop(); //按钮会停止当前活动的动画,但允许已排队的动画向前执行
});
$("#stop2").click(function(){
$("div").stop(true); //按钮停止当前活动的动画,并清空动画队列;因此元素上的所有动画都会停止
});
$("#stop3").click(function(){
$("div").stop(true,true); //会立即完成当前活动的动画,然后停下来
});
});
<div style="background:#98bf21;height:100px;width:200px;position:absolute;">HELLO</div>
② delay(duration,[queueName])
$('#foo').slideUp(300).delay(800).fadeIn(400);
③ queue(element,[queueName],callback()) —— 显示或操作在匹配元素上执行的函数队列
- element:检查附加列队的DOM元素
- queueName:字符串值,包含序列的名称。默认是 fx, 标准的效果序列。
- callback():要添加进队列的函数
④ dequeue([queueName])——从队列最前端移除一个队列函数,并执行他,队列名,默认为fx
⑤ clearQueue([queueName])——清空对象上尚未执行的所有队列,队列名,默认为fx
如果不带参数,则默认清空的是动画队列。这跟stop(true)类似,但stop()只能清空动画队列,而这个可以清空所有通过 .queue() 创建的队列
//使用.queue()方法模拟动画方法跟随动画方法之后
$('#box').slideUp('slow').slideDown('slow').queue(function () {
$(this).css('background', 'orange');
});
//如果函数执行后要继续队列,则执行next()或jQuery(this).dequeue();
$('#box').slideUp('slow').slideDown('slow').queue(function (next) {
$(this).css('background', 'orange');
next();
}).hide('slow');
$('#box').slideUp('slow').slideDown('slow').queue(function () {
$(this).css('background', 'orange');
$(this).dequeue(); //next 函数是jQuery1.4 版本以后才出现的,而之前我们普遍使用的是.dequeue()方法
}).hide('slow');
//使用顺序调用的列队,逐个执行,非常清晰
$('#box').slideUp('slow');
$('#box').slideDown('slow');
$('#box').queue(function () {
$(this).css('background', 'orange');
$(this).dequeue();
})
$('#box').hide('slow');
三、和动画相关的过滤器和方法
3.1 :animated
这个过滤器可以判断出当前运动的动画是哪个元素。通过这个特点,我们可以避免由于用户快速在某个元素执行动画时,由于动画积累而导致的动画和用户的行为不一致。
//递归执行自我,无线循环播放
$('#box').slideToggle('slow', function () {
$(this).slideToggle('slow', arguments.callee);
});
//停止正在运动的动画,并且设置红色背景
$('.button').click(function(){
$('div:animated').stop().css('background', 'red');
});
3.2 判断元素是否在动画状态的方法
$(element).is(“:animated”);
四、动画全局属性
- $.fx.interval,设置每秒运行的帧数,默认为13 毫秒。数字越小越流畅,但可能影响浏览器性能
- $.fx.off,关闭页面上所有的动画
jQuery学习小结2——动画的更多相关文章
- jQuery学习小结
1.jQuery hide() 和 show() 通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: $("#hide").clic ...
- JavaScript及jQuery学习小结
最近几天学习了很多关于JavaScript和jQuery的文章,稍作梳理后,总结如下. 1.jQuery入门系列 环境搭建 只需引用一个jQuery库文件,即可完成jQuery的环境搭建. 选择器 j ...
- jQuery学习小结1-CSS操作+事件
一.DOM对象和jQuery 对象互换 1.jQuery对象 就是通过jQuery包装DOM对象后产生的对象.jQuery对象是jQuery独有的,其可以使用jQuery里的方法.比如: $(&quo ...
- jQuery学习小结3——AJAX
一.jQuery的Ajax方法 jQuery对Ajax 做了大量的封装,使用起来也较为方便,不需要去考虑浏览器兼容性.对于封装的方式,jQuery 采用了三层封装: 最底层的封装方法为——$.ajax ...
- jQuery 学习小结
1,jQuery是一个简单的JavaScript库,提供了一系列辅助函数:以下简称jq; 使用jq时,通常将jq代码放到head部分的事件处理方法中,也可以将其单独写出 .js 文件,引入:但无论哪种 ...
- 大量Javascript/JQuery学习教程电子书合集
[推荐分享]大量Javascript/JQuery学习教程电子书合集,送给有需要的人 不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小 15天学会jQuery(完整版).pd ...
- [推荐分享]大量Javascript/JQuery学习教程电子书合集,送给有需要的人
不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小 15天学会jQuery(完整版).pdf 274.79 KB 21天学通JavaScript(第2版)-顾宁燕扫描版.pdf ...
- jquery学习笔记(四):动画
内容来自[汇智网]jquery学习课程 4.1 显示和隐藏 在jQuery中使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: hide()的语法形式:$(selector).h ...
- jQuery学习之路(4)- 动画
▓▓▓▓▓▓ 大致介绍 通过jQuery中基本的动画方法,能够轻松地为网页添加非常精彩的视觉效果,给用户一种全新的体验 ▓▓▓▓▓▓ jQuery中的动画 ▓▓▓▓▓▓ show()和hide()方法 ...
随机推荐
- 业务对象(BO)设计
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- XML详解:第一部分
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- getting started with building a ROS simulation platform for Deep Reinforcement Learning
Apparently, this ongoing work is to make a preparation for futural research on Deep Reinforcement Le ...
- AS3 求两条直线的交点
//粘贴到帧上运行即可 var p1Start:Point = new Point(0,0); var p1End:Point = new Point(50,50); var p2Start:Poin ...
- C++大数类模板
友情提示:使用该模板的注意了,在大数减法里有一个小错误,导致减法可能会出错 // 原来的写法,将t1.len错写成了len ] == && t1.len > ) { t1.len ...
- javascript学习-原生javascript的小特效(原生javascript实现链式运动)
以下代码就不详细解析了,在我之前的多个运动效果中已经解析好多次了,重复的地方这里就不说明了,有兴趣的童鞋可以去看看之前的文章<原生javascript的小特效> <!DOCTYPE ...
- FFPEG 转码记录------解决了有流,但是没有码率和FPS?
命令行:(已经测试成功) ffmpeg -i rtmp://localhost/live/S0000_8 -c:v libx264 -b:v 500k -c:a libfdk_aac -b:a 64k ...
- apt-get下载的文件
1. http://kurenai.elastos.org/2013/05/02/ubuntu-apt-get%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86/ http:// ...
- 一些比较好的shellscript脚本
1. 变量与替换 #!/bin/bash # 变量替换 # 另外, 变量替换还有许多别的语法 # 例如, b=${a/23/bb} 将 23 替换成 bb 等等, 用到时再找 a=375 hello= ...
- Android spinner控件
spinner控件是Android中下拉控件,现在介绍它两种用法.第一种,从资源文件中获取下拉值:第二种,从代码中获取下拉值. 第一种,首先要在资源文件中把值写好: <?xml version= ...