JavaScript 动画之链式运动
来源:互联网 发布:淘宝定制家具付款流程 编辑:程序博客网 时间:2024/05/21 11:18
回调函数
运动停止时,执行函数
运动停止时,开始下一次运动
function getStyle(obj, attr){ if(obj.currentStyle) { return obj.currentStyle[attr]; } else { return getComputedStyle(obj, false)[attr]; }}function startMove(obj, attr, iTarget, fn){ clearInterval(obj.timer); obj.timer=setInterval(function (){ //1.ȡ��ǰ��ֵ var iCur=0; if(attr=='opacity') { iCur=parseInt(parseFloat(getStyle(obj, attr))*100); } else { iCur=parseInt(getStyle(obj, attr)); } //2.���ٶ� var iSpeed=(iTarget-iCur)/8; iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed); //3.���ֹͣ if(iCur==iTarget) { clearInterval(obj.timer); if(fn) { fn(); } } else { if(attr=='opacity') { obj.style.filter='alpha(opacity:'+(iCur+iSpeed)+')'; obj.style.opacity=(iCur+iSpeed)/100; } else { obj.style[attr]=iCur+iSpeed+'px'; } } }, 30)}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><style>#div1 {width:100px; height:100px; background:red; filter:alpha(opacity:30); opacity:0.3;}</style><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title><script src="move.js"></script><script>window.onload=function (){ var oDiv=document.getElementById('div1'); oDiv.onmouseover=function () { startMove(oDiv, 'width', 300, function (){ startMove(oDiv, 'height', 300, function (){ startMove(oDiv, 'opacity', 100); }); }); }; oDiv.onmouseout=function () { startMove(oDiv, 'opacity', 30, function (){ startMove(oDiv, 'height', 100, function (){ startMove(oDiv, 'width', 100); }); }); };};</script></head><body><div id="div1"></div></body></html>
参考:JavaScript动画
阅读全文
0 0
- JavaScript 动画之链式运动
- JavaScript之链式运动
- JavaScript 动画之链式运动自动刷新功能
- 《js动画效果》之链式运动
- 《js动画效果》之链式运动
- JavaScript 动画之缓冲运动
- JavaScript 动画之弹性运动
- JavaScript 动画之碰撞运动
- JavaScript动画篇之缓冲运动
- JavaScript动画之完美运动框架
- Js运动动画系列8--链式动画
- JavaScript运动框架(五):链式运动到完美运动
- HTML+JavaScript实现链式运动特效
- [学习笔记]JavaScript基础--链式运动
- JavaScript进阶之--DOM事件、动画(运动框架)
- jQuery之动画运动
- JavaScript运动之缓冲运动
- JavaScript动画2-缓冲运动
- 从 vue 1.x 升级到 vue 2.x 常见问题
- spring cloud day07【config】
- NOIP2017图书管理员(普及T2)
- LeetCode题目分类
- 欢迎使用CSDN-markdown编辑器
- JavaScript 动画之链式运动
- redis学习---下
- Spring Boot+Intelli IDEA+Maven创建Hello World
- 总结(11.20-11.25)
- ARKit真机测试运行白屏崩溃,dyld:Library not loaded:@rpath.libswiftARKit.dylib
- Day11多态部分-1 【1.1 多态的体现】
- NOIP2017棋盘(普及T3)
- DP(二)2955 Robberies(java版)
- 计算1/1-1/2+1/3-...+1/99-1/100的值