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 相关文章推荐
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
Apr 10 Javascript
JQuery each()嵌套使用小结
Apr 18 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
Aug 14 Javascript
JavaScript Math 对象常用方法总结
Apr 28 Javascript
jQuery根据ID、CLASS、等获取对象的实例
Dec 04 Javascript
老生常谈jquery中detach()和remove()的区别
Mar 02 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
Mar 09 Javascript
React+react-dropzone+node.js实现图片上传的示例代码
Aug 23 Javascript
在React 组件中使用Echarts的示例代码
Nov 08 Javascript
Vue 自定义动态组件实例详解
Mar 28 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
Aug 25 Javascript
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
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
php 删除无限级目录与文件代码共享
2008/11/22 PHP
PHP 开发环境配置(测试开发环境)
2010/04/28 PHP
php技术实现加载字体并保存成图片
2015/07/27 PHP
PHP类的封装与继承详解
2015/09/29 PHP
变量在 PHP7 内部的实现(二)
2015/12/21 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
学习JS面向对象成果 借国庆发布个最新作品与大家交流
2009/10/03 Javascript
JavaScript使用HTML5的window.postMessage实现跨域通信例子
2014/04/11 Javascript
jQuery中val()方法用法实例
2014/12/25 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
2016/07/01 Javascript
浅析JavaScript动画模拟拖拽原理
2016/12/09 Javascript
微信小程序 页面跳转和数据传递实例详解
2017/01/19 Javascript
JS获取字符对应的ASCII码实例
2017/09/10 Javascript
在Vue中使用Select选择器拼接label的操作
2020/10/22 Javascript
[01:48]DOTA2 2015国际邀请赛中国区预选赛第二日战报
2015/05/27 DOTA
python一键升级所有pip package的方法
2017/01/16 Python
python版微信跳一跳游戏辅助
2018/01/11 Python
Python中pandas模块DataFrame创建方法示例
2018/06/20 Python
Django数据库类库MySQLdb使用详解
2019/04/28 Python
tornado+celery的简单使用详解
2019/12/21 Python
Django密码存储策略分析
2020/01/09 Python
python dumps和loads区别详解
2020/02/04 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
2020/07/09 Python
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
党员组织关系介绍信
2014/02/13 职场文书
淘宝好评语大全
2014/05/05 职场文书
搞笑的获奖感言
2014/08/16 职场文书
2014国庆节餐厅促销活动策划方案
2014/09/16 职场文书
学校2014年度工作总结
2014/12/06 职场文书
郭明义观后感
2015/06/08 职场文书
《月光曲》教学反思
2016/02/16 职场文书
如何写一份具有法律效力的借款协议书?
2019/07/02 职场文书
Nginx+SpringBoot实现负载均衡的示例
2021/03/31 Servers
vue项目两种方式实现竖向表格的思路分析
2021/04/28 Vue.js
Python基础之常用库常用方法整理
2021/04/30 Python
Rhit高效可视化Nginx日志查看工具
2021/11/01 Servers