详解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 相关文章推荐
Javascript的闭包
Dec 31 Javascript
从零开始学习jQuery (十) jQueryUI常用功能实战
Feb 23 Javascript
jquery 插件学习(二)
Aug 06 Javascript
JavaScript中的noscript元素属性位置及作用介绍
Apr 11 Javascript
js单向链表的具体实现实例
Jun 21 Javascript
ECMAScript5(ES5)中bind方法使用小结
May 07 Javascript
基于jquery css3实现点击动画弹出表单源码特效
Aug 31 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
Dec 22 Javascript
浅谈vue-router2路由参数注意的问题
Nov 08 Javascript
npm 下载指定版本的组件方法
May 17 Javascript
vue使用混入定义全局变量、函数、筛选器的实例代码
Jul 29 Javascript
js实现登录时记住密码的方法分析
Apr 05 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
深入PHP5中的魔术方法详解
2013/06/17 PHP
简单谈谈PHP中的Reload操作
2016/12/12 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
2017/04/05 PHP
PHP删除字符串中非字母数字字符方法总结
2019/01/20 PHP
在jQuery 1.5中使用deferred对象的代码(翻译)
2011/03/10 Javascript
JavaScript 代码压缩工具小结
2012/02/27 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
很棒的js选项卡切换效果
2016/07/15 Javascript
JS简单获取及显示当前时间的方法
2016/08/03 Javascript
js事件源window.event.srcElement兼容性写法(详解)
2016/11/25 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
tangram.js库实现js类的方式实例分析
2018/01/06 Javascript
NodeJS搭建HTTP服务器的实现步骤
2018/10/12 NodeJs
解决iview table组件里的 固定列 表格不自适应的问题
2020/11/13 Javascript
python文件写入实例分析
2015/04/08 Python
Python实现SVN的目录周期性备份实例
2015/07/17 Python
解析Python中的__getitem__专有方法
2016/06/27 Python
Python MD5加密实例详解
2017/08/02 Python
Python Pandas 箱线图的实现
2019/07/23 Python
python  logging日志打印过程解析
2019/10/22 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
2020/06/02 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
html5 canvas合成海报所遇问题及解决方案总结
2017/08/03 HTML / CSS
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
联想C++笔试题
2012/06/13 面试题
计算机应用专业学生的自我评价分享
2013/11/03 职场文书
烹调加工管理制度
2014/02/04 职场文书
关于学习的演讲稿
2014/05/10 职场文书
婚礼证婚人演讲稿
2014/09/13 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
2014年工程部工作总结
2014/11/25 职场文书
2015年检验科工作总结
2015/04/27 职场文书
python识别围棋定位棋盘位置
2021/07/26 Python