javascript - 为什么onmouseout不执行??

查看:164
本文介绍了javascript - 为什么onmouseout不执行??的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

window.onload=function(){

    var oDiv = document.getElementById('div');
    var timer= null;

    oDiv.onmouseover=function(){
        startMove1();    
    }
    oDiv.onmouseout=function(){
        startMove2();
    }

    function startMove1(){
      clearInterval(timer);
      timer=setInterval(function(){
          if(oDiv.offsetLeft==0){
            clearInterval(timer);
          }else{
            console.log(111);
            oDiv.style.left=oDiv.offsetLeft+10+'px';
          }             
      },30);
    }

    
    function startMove2(){
      clearInterval(timer);
      timer=setInterval(function(){
          if(oDiv.offsetLeft==-150){
            clearInterval(timer);
          }else{
            oDiv.style.left=oDiv.offsetLeft-10+'px';
          }             
      },30);
    }

  }
  
  

<div id="div">

<div id="div1">分享到</div>

</div>

解决方案

问题1:

你是改变元素的 left 属性实现动画效果,至少 #div 元素是绝对或者固定定位的

问题2:

你在 mouseover 上结束动画的条件是 left 为 0,此外都是移动的。那么是不是说 left 默认不能设置为 0,否则你的动画不会运行。

问题3;

mouseout 上结束动画的条件是 left 为 -150, 按你每次 +10 和 -10 的移动方式,那么 left 默认设置必须是 10 或者 10 的倍数



这篇关于javascript - 为什么onmouseout不执行??的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆