详解jQuery中基本的动画方法


Posted in Javascript onDecember 14, 2016

大致介绍

通过jQuery中基本的动画方法,能够轻松地为网页添加非常精彩的视觉效果,给用户一种全新的体验

jQuery中的动画

详解jQuery中基本的动画方法

show()和hide()方法

1、show()方法和hide()方法是jQuery中最基本的方法,hide()方法会将一个元素的display设置为"none";

2、show()方法和hide()方法会同时改变元素的宽度、高度和透明度

3、在一个元素使用hide()方法时会记录原先的display属性,当调用show()方法的时候会根据hide()方法记住的display属性值来显示该元素

4、show()方法和hide()方法都能接受一个参数,表示运动的快慢

$('.div1').toggle(function(){
$('.div2').hide(600);
 },function(){
  $('.div2').show(600);
 });

fadeIn()方法和fadeOut()方法

1、fadeOut()方法在指定的一段时间内只降低元素的不透明度,而fadeIn()方法则相反

2、接受一个参数

$('.div1').toggle(function(){
  $('.div2').fadeIn(600);
 },function(){
  $('.div2').fadeOut(600);
 });

slideUp()方法和slideDown()方法

 1、slideUp()方法和slideDown()方法只会改变元素的高度。如果一个元素的display属性值为"none",当调用slideDown()方法时,这个元素将由上至下延伸,slideUp()方法相反

 2、接受一个参数

$('.div1').toggle(function(){
  $(this).next().slideUp();
 },function(){
  $(this).next().slideDown();
 });

自定义动画方法animate()

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

 (1)params:一个包含样式属性及值得映射

 (2)speed:速度参数,可选

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

1、基本用法

$('.div1').click(function(){
  $('.div2').animate({width:'+=50px',height:'300px'},600);
 });

2、多重动画

如果要采用链式运动可以采用链式写法

$('.div1').click(function(){
 $('.div2').animate({width:'350px'},600)
  .animate({height:'300px'},600);
 });

注意:如果采用链式写法时用了css()方法,css()方法不会添加到运动队列中,会直接执行而不等待前面的动画

$('.div1').click(function(){
  $('.div2').animate({width:'350px'},600)
   .animate({height:'300px'},600)
   .css('border','10px solid black');
 });

这个元素的边框会在一开始就添加到了元素上,要解决这个问题的办法就是使用回调函数

如果要同时运动可将要运动的值写在一起

$('.div1').click(function(){
 $('.div2').animate({width:'350px',height:'300px'},600);
 });

回调函数

回调函数适用与jQuery所有的动画效果方法

例如要解决链式写法css()属性会直接执行的问题可以采用回调函数的方法

$('.div1').click(function(){
 $('.div2').animate({width:'350px'},600)
   .animate({height:'300px'},600,function(){
   $('.div2').css('border','10px solid black');
  });
 });

停止动画和判断是否处于动画状态

1、停止元素的动画

stop()方法接受两个参数

第一个参数为true或者false,表示是否要清空为执行完的动画队列,例如我们写链式动画时,如果第一个参数为true,当我们阻止了正在进行的一个动画操作后,后面的动画操作都会被清空,如果参数为false时,就只会阻止当前的这个动画,动画队列后的动画依旧执行

第二个参数为true或者false,表示是否要将正在执行的动画跳转到末状态

2、判断元素是否处于动画状态

如果用户频繁的执行一个animate()动画时,就会出现动画积累,解决方法就是判断元素是否正处于动画状态,如果元素不处于动画状态,才为元素添加新的动画

if(!$('div1').is(':animated')){
 // 添加动画
 }

3、延迟动画

如果要延迟执行一个动画,就可以使用delay()方法

$('.div1').click(function(){
  $('.div2').animate({width:'350px'},600)
   .delay(1000)
   .animate({height:'300px'},600,function(){
    $('.div2').css('border','10px solid black');
   });
 });

其他动画方法

1、slideToggle()方法

通过高度的变化来切换匹配的元素的可见性

$('.div1').click(function(){
 $('.div2').slideToggle();
});

2、fadeTo()方法

可以把元素的不透明度以渐进的方式调整到指定的值,这个动画只调整元素的不透明度

$('.div1').click(function(){
 $('.div2').fadeTo(600,0.5);
 });

3、fadeToggle()方法

通过不透明度来切换匹配元素的可见性

$('.div1').click(function(){
 $('.div2').fadeTo(600,0.5);
 });

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
IE和Firefox在JavaScript应用中的兼容性探讨
Apr 01 Javascript
jquery星级插件、支持页面中多次使用
Mar 25 Javascript
js 判断checkbox是否选中的操作方法
Nov 09 Javascript
jquery实现可自动判断位置的弹出层效果代码
Oct 12 Javascript
深入学习jQuery Validate表单验证
Jan 18 Javascript
微信小程序 网络API发起请求详解
Nov 09 Javascript
jquery Banner轮播选项卡
Dec 26 Javascript
基于zepto.js实现登录界面
Oct 09 Javascript
JS实现图片旋转动画效果封装与使用示例
Jul 09 Javascript
js实现图片上传并预览功能
Aug 06 Javascript
JavaScript寄生组合式继承原理与用法分析
Jan 11 Javascript
JavaScript中this的学习笔记及用法整理
Feb 17 Javascript
浅析上传头像示例及其注意事项
Dec 14 #Javascript
实现点击下箭头变上箭头来回切换的两种方法【推荐】
Dec 14 #Javascript
jQuery 常见小例汇总
Dec 14 #Javascript
javascript基本数据类型及类型检测常用方法小结
Dec 14 #Javascript
用v-html解决Vue.js渲染中html标签不被解析的问题
Dec 14 #Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
Dec 14 #Javascript
实例解析angularjs的filter过滤器
Dec 14 #Javascript
You might like
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
2012/09/13 PHP
ThinkPHP添加更新标签的方法
2014/12/05 PHP
php好代码风格的阶段性总结
2016/06/25 PHP
php中文字符串截取多种方法汇总
2016/10/06 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
jQuery EasyUI API 中文文档 - Tree树使用介绍
2011/11/19 Javascript
iphone safari不支持position fixed的解决方法
2012/05/04 Javascript
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
2013/04/02 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
基于javascript制作经典传统的拼图游戏
2016/03/22 Javascript
第六章之辅组类与响应式工具
2016/04/25 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
Javascript中this关键字指向问题的测试与详解
2017/08/11 Javascript
微信小程序滚动Tab实现左右可滑动切换
2017/08/17 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
结合mint-ui移动端下拉加载实践方法总结
2017/11/08 Javascript
基于Vue2-Calendar改进的日历组件(含中文使用说明)
2019/04/14 Javascript
Layui多选只有最后一个值的解决方法
2019/09/02 Javascript
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
[02:15]2014DOTA2国际邀请赛 专访LGD.lin小兔子是大腿
2014/07/14 DOTA
[48:21]林俊杰圣堂刺客超神杀戮秀
2014/10/29 DOTA
python中使用urllib2伪造HTTP报头的2个方法
2014/07/07 Python
Anaconda下安装mysql-python的包实例
2018/06/11 Python
如何优雅地处理Django中的favicon.ico图标详解
2018/07/05 Python
Python高斯消除矩阵
2019/01/02 Python
django中ORM模型常用的字段的使用方法
2019/03/05 Python
详解Python中的正斜杠与反斜杠
2019/08/09 Python
pycharm快捷键汇总
2020/02/14 Python
python中time tzset()函数实例用法
2021/02/18 Python
python定义具名元组实例操作
2021/02/28 Python
使用CSS3的::selection改变选中文本颜色的方法
2015/09/29 HTML / CSS
20佳惊艳的HTML5应用程序示例分享
2011/05/03 HTML / CSS
三下乡活动方案
2014/01/31 职场文书
《怀念母亲》教学反思
2016/02/19 职场文书
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python