2014-10-19 73 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雖然不可見,但會覆蓋按鈕的一部分。

相關問題