js 动画
来源:互联网 发布:java web服务开发 pdf 编辑:程序博客网 时间:2024/05/15 11:24
自定义动画
如果上述动画效果还不能满足你的要求,那就祭出最后大招:animate()
,它可以实现任意动画效果,我们需要传入的参数就是DOM元素最终的CSS状态和时间,jQuery在时间段内不断调整CSS直到达到我们设定的值:
var div = $('#test-animate');div.animate({ opacity: 0.25, width: '256px', height: '256px'}, 3000); // 在3秒钟内CSS过渡到设定值
animate()
还可以再传入一个函数,当动画结束时,该函数将被调用:
var div = $('#test-animate');div.animate({ opacity: 0.25, width: '256px', height: '256px'}, 3000, function () { console.log('动画已结束'); // 恢复至初始状态: $(this).css('opacity', '1.0').css('width', '128px').css('height', '128px');});
实际上这个回调函数参数对于基本动画也是适用的。
有了animate()
,你就可以实现各种自定义动画效果了(仅展示):
串行动画
jQuery的动画效果还可以串行执行,通过delay()
方法还可以实现暂停,这样,我们可以实现更复杂的动画效果,而代码却相当简单:
var div = $('#test-animates');// 动画效果:slideDown - 暂停 - 放大 - 暂停 - 缩小div.slideDown(2000) .delay(1000) .animate({ width: '256px', height: '256px' }, 2000) .delay(1000) .animate({ width: '128px', height: '128px' }, 2000);}</script>
因为动画需要执行一段时间,所以jQuery必须不断返回新的Promise对象才能后续执行操作。简单地把动画封装在函数中是不够的。
效果实测:(仅展示)
为什么有的动画没有效果
你可能会遇到,有的动画如slideUp()
根本没有效果。这是因为jQuery动画的原理是逐渐改变CSS的值,如height
从100px
逐渐变为0
。但是很多不是block性质的DOM元素,对它们设置height
根本就不起作用,所以动画也就没有效果。
此外,jQuery也没有实现对background-color
的动画效果,用animate()
设置background-color
也没有效果。这种情况下可以使用CSS3的transition
实现动画效果。
0 0
- js -- 动画
- js动画
- JS动画
- js 动画
- js动画
- [js动画]js动画框架总结
- js动画效果
- js动画效果
- js动画效果
- js的动画心得
- 动画js框架scriptaculous
- JS 颜色渐变动画
- js动画1
- js 变色动画
- js 动画封装
- js 数字滚动 动画
- Js 动画实用实例
- Cocos2d-JS动画
- USB实现
- IntelliJ IDEA创建main函数快捷方法
- configure: error: no termcap library found
- Swift3.0 去掉C风格
- zookeeper3.3.3源码分析(二)FastLeader选举算法
- js 动画
- 管理处理器的亲和性(affinity)
- 浙江工业大学校赛 XiaoWei的战斗力
- 浅谈java中<? super E> and <? extends E>的区别
- 第11章 Java容器类
- 2017-3-21-面试总结
- 在项目中集成Freeline来提升编译速度【百分百成功】
- B1028. 人口普查(20)
- 修改eclipse的主题