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

代码如下。如果快速大幅度的划过鼠标,div便会消失。求解

<!doctype html>
<html>
<head>
    <meta charset="UTF-8">
    <title>下拉菜单</title>
    <style type="text/css">
#div1{width: 200px; height: 200px; background: red; line-height: 100px; position: relative; left: 200px; top: 0px; filter: alpha(opacity:30); opacity: 0.3; top: 50px;}
body{ margin:0; padding:0;}
    </style>
   <script type="text/javascript">
   window.onload=function(){
   var oDiv=document.getElementById("div1");
   oDiv.onmouseover=function(){
       stareMove(100);
   }
   oDiv.onmouseout=function(){
       stareMove(20);
   }
       var timer=null,
              filter=30;
       function stareMove(iTarget){
           clearInterval(timer);
           var oDiv=document.getElementById("div1");
           var speed=0;
           if (filter<iTarget) {
               speed=10;
           }
           else{
               speed=-10;
           }
        timer=setInterval(function(){
            filter+=speed;
            if (filter==iTarget) {
                clearInterval(timer);
            }
            else{
                oDiv.style.filter='alpha(opacity:filter)';
                oDiv.style.opacity=filter/100;
            }

        },30)
       }
   }
   </script>

</head>
<body>
<div id="div1"></div>
</body>
</html>

正在回答

2 回答

首先,如果快速大幅度的划过鼠标,div便会消失,实际上是一种错觉,div并没有消失,而是透明度值变到0以下了,你看不到了div的背景颜色了而以.

0 回复 有任何疑惑可以回复我~
#1

桃太郎 提问者

这个我知道,我说的是表象像消失一样。谢谢呢
2016-12-15 回复 有任何疑惑可以回复我~
  1. 首先filter+=speed;应该放在else里面,否则透明度显示范围(0.3,0.9),而我要求的是(0.2,1)。但是我不明白filter+=speed;放在else外,鼠标小浮动的划过,正常。当大幅度快速划过,透明度便一直在减小,就像没有走clearInterval(timer);一直执行else语句。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

代码如下。如果快速大幅度的划过鼠标,div便会消失。求解

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信