2014-10-19 70 views
0

虽然创建了一个jQuery下拉菜单,我遇到了一个最奇怪的问题 - 一个已被隐藏的元素仍然在影响页面。为什么会发生这种情况,我该如何解决?它通过阻止按钮的一部分来影响功能,强制一个人从未被阻止的部分调用该功能。例如;.toggle()不能将显示设置为无?

<!DOCTYPE html> 
<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
    $("#start").mouseenter(function(){ 
    $("#box").stop().toggle(); 
    $("#box").stop().animate({ 
     top:'50px', 
     opacity:'1' 
    },400,function(){ 
    }); 
    }); 
    $("#start").mouseleave(function(){ 
    $("#box").stop().animate({ 
     top:'25px', 
     opacity:'0' 
    },400,function(){ 
    $("#box").stop().toggle(); 
    }); 
    }); 
}); 
</script> 
</head> 

<body> 
<button id="start">Start Animation</button> 
<div id ="box" style="background:#98bf21;height:100px;width:100px;position:absolute;opacity:0;display:none;top:25px;"> 
</div> 

</body> 
</html> 

编辑:设置最上面的设置到十个PX完全覆盖了按钮,如果你看不到的问题。

+0

你能详细解释一下这个问题吗? – 2014-10-19 00:25:14

+0

该功能不会触发,因为该元素已结束。这不应该发生,因为元素是隐藏的。 – CaffeineToCode 2014-10-19 00:31:43

+0

[看起来很好](http://jsfiddle.net/h6fem7pt/)。或者你可以更具体吗? – 2014-10-19 00:33:34

回答

1

我刚刚做了Fiddle问题解决使用z-index:-1;为div。当此z索引被删除时,按钮的mouseenter不起作用,因为动画div虽然不可见,但会覆盖按钮的一部分。

相关问题