jQuery中animate的几种用法与注意事项


Posted in Javascript onDecember 12, 2016

一、animate语法结构

animate(params,speed,callback)

params:一个包含样式属性及值的映射,比如{key1:value1,key2:value2}

speed:速度参数[可选]

callback:在动画完成时执行的函数[可选]

二、自定义简单动画

用一个简单例子来说明,实现单击某div在页面上横向飘动的效果。

<style>
 #cube{
  position:relative;/* 不加这句元素不能动 */
  width:30px;
  height:30px;
  background:red;
  cursor:pointer;
 }
</style>
<body>
 <div>
  <div id="cube"></div>
 </div>
 <script>
  $(function(){
   $("#cube").click(function(){
    $(this).animate({left:"100px"},2000)
   })
  })
 </script>

为了使元素动起来,要改变left属性。为了能影响元素top、right、bottom、left属性值必须声明元素的position。

jQuery中animate的几种用法与注意事项
演示效果

三、累加、累减动画

在之前的代码中,设置了{left:"100px"}这个属性作为参数,如果改写为{left:"+=25px"} ,效果如下

jQuery中animate的几种用法与注意事项
演示效果

四、多重动画

同时执行多个动画

上面的例子是一个很简单的动画。如果想同时执行多个动画,比如在元素向右滑动的同时,放大元素高度。

代码如下:

$(this).animate({left:"+=25px",height:"+=20px"},1000)

jQuery中animate的几种用法与注意事项

演示效果

五、按顺序执行多个动画

上例中,向右滑动与高度变大是同时发生的,如果想让方块先向右滑动再变高,只需将代码拆分

如下:

$(this).animate({left:"+=25px"},500)
  .animate({height:"+=20px"},500)

像这样的动画效果的执行有先后顺序,称为“动画队列”

jQuery中animate的几种用法与注意事项
演示效果

六、综合示例

单击方块,让他向右移动的同时增高,不透明度从50%增加到100%,之后上下移动,加宽,完成后淡出。

$("#cube").click(function(){
    $(this).animate({left:"100px",height:"100px",opacity:"1"},500)
    .animate({top:"40px",width:"100px"},500)
    .fadeOut('slow')
   })

为同一元素应用多重效果时可以通过链式方式对这些效果进行排队。

jQuery中animate的几种用法与注意事项
演示效果

七、动画回调函数

在上例中,如果想在最后一步切换css样式(background:blue),而不是淡出,如果按照通常处理,相关代码如下:

$("#cube").click(function(){
    $(this).animate({left:"100px",height:"100px",opacity:"1"},500)
    .animate({top:"40px",width:"100px"},500)
    .css("border","5px solid blue")//改动这行
   })

然而,css()方法被提前调用。

jQuery中animate的几种用法与注意事项
演示效果

引起这个问题的原因是,css()方法不会加入到动画队列中,而是立即执行。可以使用回调函数对非动画方法实现排队。

正确的相关代码如下:

$("#cube").click(function(){
    $(this).animate({left:"100px",height:"100px",opacity:"1"},500)
    .animate({top:"40px",width:"100px"},500,function(){
     $(this).css("border","5px solid blue")
    })
   })

jQuery中animate的几种用法与注意事项

演示效果

值得注意的是,callback适用于jquery所有的动画方法,比如slidDown() ,show()等。

总结

以上就是关于jquery中animate的几种用法和注意事项,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
CSS和JS标签style属性对照表(方便js开发的朋友)
Nov 11 Javascript
window.open打开页面居中显示的示例代码
Dec 27 Javascript
js获取指定日期周数以及星期几的小例子
Jun 27 Javascript
javascript获得当前的信息的一些常用命令
Feb 25 Javascript
JavaScript获取表单enctype属性的方法
Apr 02 Javascript
JS代码随机生成姓名、手机号、身份证号、银行卡号
Apr 27 Javascript
Extjs表单输入框异步校验的插件实现方法
Mar 20 Javascript
angularjs定时任务的设置与清除示例
Jun 02 Javascript
原生js调用json方法总结
Feb 22 Javascript
详解vue的数据劫持以及操作数组的坑
Apr 18 Javascript
js基础之事件捕获与冒泡原理
Oct 09 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
Mar 16 Javascript
Websocket协议详解及简单实例代码
Dec 12 #Javascript
jQuery中值得注意的trigger方法浅析
Dec 12 #Javascript
jQuery实现字符串全部替换的方法
Dec 12 #Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
Dec 12 #Javascript
简单实现jquery焦点图
Dec 12 #Javascript
javascript中setAttribute兼容性用法分析
Dec 12 #Javascript
jQuery焦点图左右转换效果
Dec 12 #Javascript
You might like
乱谈我对耳机、音箱的感受
2021/03/02 无线电
PHP5函数小全(分享)
2013/06/06 PHP
php生成百度sitemap站点地图类函数实例
2014/10/17 PHP
PHP之uniqid()函数用法
2014/11/03 PHP
PHP中使用SimpleXML检查XML文件结构实例
2015/01/07 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
Prototype使用指南之range.js
2007/01/10 Javascript
jQuery ul标签下拉菜单演示代码
2010/12/11 Javascript
百度地图api应用标注地理位置信息(js版)
2013/02/01 Javascript
Nodejs实现批量下载妹纸图
2015/05/28 NodeJs
分享jQuery插件的学习笔记
2016/01/14 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
微信小程序实现页面浮动导航
2019/01/28 Javascript
基于PHP pthreads实现多线程代码实例
2020/06/24 Javascript
[16:56]教你分分钟做大人:司夜刺客
2014/10/30 DOTA
[02:27]《DAC最前线》之附加赛征程
2015/01/29 DOTA
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
跟老齐学Python之不要红头文件(1)
2014/09/28 Python
Python中非常实用的一些功能和函数分享
2015/02/14 Python
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
Ubuntu安装Jupyter Notebook教程
2017/10/18 Python
Python实现感知器模型、两层神经网络
2017/12/19 Python
Python实现获取本地及远程图片大小的方法示例
2018/07/21 Python
django项目中使用手机号登录的实例代码
2019/08/15 Python
python中reload重载实例用法
2020/12/15 Python
python 高阶函数简单介绍
2021/02/19 Python
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
vue实现倒计时功能
2021/03/24 Vue.js
会计专业职业规划:规划自我赢取未来
2014/02/12 职场文书
给老婆大人的检讨书
2014/02/24 职场文书
2015年父亲节活动总结
2015/02/12 职场文书