为了账号安全,请及时绑定邮箱和手机立即绑定

不知道为什么没有链式运动,只运动了第一部分,要鼠标移动第二下才显示

不知道为什么没有链式运动,只运动了第一部分,要鼠标移动第二下才显示

qq__3360 2016-07-27 07:44:08
window.onload = function () {     var donghua = document.getElementById('donghua');     donghua.onmouseover = function () {       startMove(donghua,{width: '400'},function () {         startMove(donghua,{height:'20'})       })     }   }   function getStyle(obj, attr) {     if (obj.currentStyle) {       return obj.currentStyle[attr];     }     else {       return getComputedStyle(obj, false)[attr];     }   }   function startMove(obj, json, fn) {     var flag = true;//假设标杆     clearInterval(obj.timer);     obj.timer = setInterval(function () {       for (var attr in json) { //    1.取当前的值         var iCur = 0;         if (attr == 'opacity') {           iCur = Math.round(parseFloat(getStyle(obj, attr)) * 100);         } else {           iCur = parseInt(getStyle(obj, attr));         } //    2.算速度         var iSpeed = (json[attr] - iCur) / 8;         iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed); //    3.检测停止         if (iCur != json[attr]) {           flag = false;         }         if (attr == 'opacity') {           obj.style.filter = 'alpha(opacity:' + (iCur + iSpeed) + ')';           obj.style.opacity = (iCur + iSpeed) / 100;         }         else {           obj.style[attr] = iCur + iSpeed + "px";         }       }       if (flag) {         clearInterval(obj.timer);         if (fn)         {           fn();         }       }     }, 30)   }
查看完整描述

1 回答

?
萧雁翎

TA贡献57条经验 获得超235个赞


楼主,你好。

问题可能是你的标杆没有放在定时器内导致的。

19-22行代码可以调整顺序如下:

    clearInterval(obj.timer);
    obj.timer = setInterval(function () {
      var flag = true;//假设标杆
      for (var attr in json) {

如果解决了您的问题,请采纳,谢谢!

查看完整回答
2 反对 回复 2016-07-27
  • 1 回答
  • 0 关注
  • 1208 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信