封装的运动函数 doMove

本文介绍了一个封装良好的JavaScript平滑运动函数doMove,该函数能够控制DOM元素按指定方向和速度平滑移动到目标位置,并支持嵌套调用及回调函数。适用于网页元素动画效果的开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

封装好的运动函数 doMove

  1. function doMove ( obj, attr, dir, target, endFn ) {
  2. dir = parseInt(getStyle( obj, attr )) < target ? dir : -dir;
  3. clearInterval( obj.timer );
  4. obj.timer = setInterval(function () {
  5. var speed = parseInt(getStyle( obj, attr )) + dir;
  6. if ( speed > target && dir > 0 || speed < target && dir < 0 ) {
  7. speed = target;
  8. }
  9. obj.style[attr] = speed + 'px';
  10. if ( speed == target ) {
  11. clearInterval( obj.timer );
  12. endFn && endFn();
  13. }
  14. }, 30);
  15. }
  16. function getStyle ( obj, attr ) { return obj.currentStyle?obj.currentStyle[attr] : getComputedStyle( obj )[attr]; }
解析:doMove ( obj, attr, dir, target, endFn )
   
   obj --> 要运动的对象 // div...
   attr --> 运动的相对方向 // top/left ,也可以是height / width
   dir --> 运动速度
   target --> 目标点,要到达的位置
  endFn -->回调函数,可有可无,
示例:回调函数里面可以嵌套
  1. doMove ( oDiv, 'left', 12, 900, function () {
  2. doMove ( oDiv, 'top', 34, 500 ,function(){
  3. doMove ( oDiv, 'left',20,20,function(){
  4. doMove ( oDiv, 'top',20,40);
  5. });
  6. });
  7. });













评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值