详解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 相关文章推荐
浅析JQuery中的html(),text(),val()区别
Sep 01 Javascript
node.js中的fs.appendFile方法使用说明
Dec 17 Javascript
window.onload与$(document).ready()的区别分析
May 30 Javascript
深入浅析JavaScript中的Function类型
Jul 09 Javascript
原生JS实现-星级评分系统的简单实例
Aug 21 Javascript
JavaScript利用正则表达式替换字符串中的内容
Dec 12 Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
Aug 28 Javascript
JS基于贪心算法解决背包问题示例
Nov 27 Javascript
vue项目中应用ueditor自定义上传按钮功能
Apr 27 Javascript
JavaScript实现一个简易的计算器实例代码
May 10 Javascript
layui使用label标签的方法
Sep 14 Javascript
JavaScript canvas实现雨滴特效
Jan 10 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
在PHP3中实现SESSION的功能(二)
2006/10/09 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
Laravel 的数据库迁移的方法
2017/07/31 PHP
PHP-X系列教程之内置函数的使用示例
2017/10/16 PHP
PHP实现从上往下打印二叉树的方法
2018/01/18 PHP
JavaScript 编写匿名函数的几种方法
2010/02/21 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
jquery中ajax使用error调试错误的方法
2015/02/08 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
ajax的分页查询示例(不刷新页面)
2017/01/11 Javascript
基于pako.js实现gzip的压缩和解压功能示例
2017/06/13 Javascript
Vue组件开发技巧总结
2018/03/04 Javascript
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
React传值 组件传值 之间的关系详解
2019/08/26 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
ES6函数实现排它两种写法解析
2020/05/13 Javascript
vue3.0 自适应不同分辨率电脑的操作
2021/02/06 Vue.js
[07:49]2014DOTA2国际邀请赛 Newbee夺冠后采访xiao8坦言奖金会上交
2014/07/23 DOTA
python使用xslt提取网页数据的方法
2018/02/23 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
利用Pandas 创建空的DataFrame方法
2018/04/08 Python
Python装饰器知识点补充
2018/05/28 Python
Python操作word常见方法示例【win32com与docx模块】
2018/07/17 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
Python爬虫之Selenium多窗口切换的实现
2020/12/04 Python
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
描述一下JVM加载class文件的原理机制
2013/12/08 面试题
知名企业招聘广告词大全
2014/03/18 职场文书
区级文明单位申报材料
2014/05/15 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
大学毕业生管理学求职信
2014/09/01 职场文书
2015年数学教研组工作总结
2015/05/23 职场文书
Python Flask请求扩展与中间件相关知识总结
2021/06/11 Python
mapstruct的用法之qualifiedByName示例详解
2022/04/06 Java/Android