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打造的导航菜单(附jquery版)
Aug 07 Javascript
JS读取XML文件示例代码
Nov 15 Javascript
jQuery判断元素上是否绑定了指定事件的方法
Mar 17 Javascript
浅谈被jQuery抛弃的函数及替代函数
May 03 Javascript
JavaScript的模块化开发框架Sea.js上手指南
May 12 Javascript
微信小程序 教程之模板
Oct 18 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
Sep 05 jQuery
IntelliJ IDEA 安装vue开发插件的方法
Nov 21 Javascript
详解node.js的http模块实例演示
Jul 12 Javascript
vue项目打包部署到服务器的方法示例
Aug 27 Javascript
JavaScript实现横版菜单栏
Mar 17 Javascript
JS替换字符串中指定位置的字符(多种方法)
May 28 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
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/03/02 无线电
用Zend Encode编写开发PHP程序
2006/10/09 PHP
PHP查询MySQL大量数据的时候内存占用分析
2011/07/22 PHP
PHP array_multisort() 函数的深入解析
2013/06/20 PHP
thinkphp中session和cookie无效的解决方法
2014/12/19 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
2016/05/20 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
Javascript的匿名函数小结
2009/12/31 Javascript
基于jquery实现简单的手风琴特效
2015/11/24 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
vue组件编写之todolist组件实例详解
2018/01/22 Javascript
vue better-scroll插件使用详解
2018/01/25 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
Vue的双向数据绑定实现原理解析
2020/02/17 Javascript
Vue结合路由配置递归实现菜单栏功能
2020/06/16 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
[00:49]完美世界DOTA2联赛10月28日开团时刻:随便打
2020/10/29 DOTA
python实现员工管理系统
2018/01/11 Python
用vue.js组件模拟v-model指令实例方法
2019/07/05 Python
django url到views参数传递的实例
2019/07/19 Python
利用Python复制文件的9种方法总结
2019/09/02 Python
Python连接mysql数据库及简单增删改查操作示例代码
2020/08/03 Python
容易被忽略的Python内置类型
2020/09/03 Python
预订从美国飞往印度的机票:MyTicketsToIndia
2017/05/19 全球购物
为您搜罗全球潮流時尚品牌:HBX
2019/12/04 全球购物
银行会计主管岗位职责
2014/10/01 职场文书
2014年社区矫正工作总结
2014/11/18 职场文书
2014年基建工作总结
2014/12/12 职场文书
莫言获奖感言(全文)
2015/07/31 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python
python 管理系统实现mysql交互的示例代码
2021/12/06 Python