2015-09-24 221 views
0

爲什麼我的懸停功能不起作用?隱藏div不會顯示onhover圖像

$("#staff").on("hover", function() { 
 
    $("#staffdn").show(); 
 
});
#navbar { 
 
    position: fixed; 
 
    border-style: solid; 
 
    border-color: #ffd3d9; 
 
    border-top-right-radius: 30px; 
 
    border-bottom-right-radius: 30px; 
 
    border-width: 20px; 
 
    left: -20px; 
 
    background-color: #ffd3d9; 
 
} 
 
#staffdn { 
 
    position: fixed; 
 
    border-style: solid; 
 
    border-color: #ffd3d9; 
 
    border-top-right-radius: 30px; 
 
    border-bottom-right-radius: 30px; 
 
    border-width: 20px; 
 
    left: 100px; 
 
    top: 100px; 
 
    background-color: #ffd3d9; 
 
    visibility: hidden; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="navbar"> 
 
    <ul> 
 
    <li><a href="Home.html"><img src="Images/Nav_head/home.png"></a></li> 
 
    <li><img id="Staff" src="Images/Nav_head/fourms.png"></li> 
 
    <li><a href="Fourms.html"><img src="Images/Nav_head/fourms.png"></a></li> 
 
    <li><a href="About.html"><img src="Images/Nav_head/about.png"></a></li> 
 
    <li><a href="#"><img src="Images/Nav_head/Games.png"></a></li> 
 
    </ul> 
 
</div> 
 
<div id="staffdn"> 
 
    <ul> 
 
    <li><img src="Staff-memebers.png"></li> 
 
    <li><img src="commands.png"></li> 
 
    </ul> 
 
</div>

+0

你看懸停在jQuery的文檔https://api.jquery.com/hover/ – epascarello

+0

@Jacksont這是導致問題的可見性。 –

+0

此外,選擇器區分大小寫([在符合標準的頁面上](http://stackoverflow.com/questions/2580029/jquery-class-selectors-like-someclass-are-case-sensitive#answer-2580031)) 。所以,'$(「#staff」)'不一定會選擇''。 – showdev

回答

1

你應該:

  • 不使用visibility: hidden,而是使用display: none的加載時間。
  • 加載頁面時隱藏。
  • 使用hover作爲函數而不是event
  • $(document).ready()中的所有腳本放在DOM Loaded元素上運行。
  • 然後將CSS更改爲:left: 80px; top: 60px;

這應該工作:

$(function() { 
    $("#staffdn").hide(); 
    $("#Staff").hover(function() { 
    $("#staffdn").show(); 
    }, function() { 
    $("#staffdn").hide(); 
    }); 
}); 

片段

$(function() { 
 
    $("#staffdn").show(); 
 
    $("#Staff").hover(function() { 
 
    $("#staffdn").show(); 
 
    }, function() { 
 
    $("#staffdn").hide(); 
 
    }); 
 
});
#navbar { 
 
    position: fixed; 
 
    border-style: solid; 
 
    border-color: #ffd3d9; 
 
    border-top-right-radius: 30px; 
 
    border-bottom-right-radius: 30px; 
 
    border-width: 20px; 
 
    left: -20px; 
 
    background-color: #ffd3d9; 
 
} 
 
#staffdn { 
 
    position: fixed; 
 
    border-style: solid; 
 
    border-color: #ffd3d9; 
 
    border-top-right-radius: 30px; 
 
    border-bottom-right-radius: 30px; 
 
    border-width: 20px; 
 
    left: 100px; 
 
    top: 100px; 
 
    background-color: #ffd3d9; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<div id="navbar"> 
 
    <ul> 
 
    <li><a href="Home.html"><img src="Images/Nav_head/home.png"></a></li> 
 
    <li><img id="Staff" src="Images/Nav_head/fourms.png"></li> 
 
    <li><a href="Fourms.html"><img src="Images/Nav_head/fourms.png"></a></li> 
 
    <li><a href="About.html"><img src="Images/Nav_head/about.png"></a></li> 
 
    <li><a href="#"><img src="Images/Nav_head/Games.png"></a></li> 
 
    </ul> 
 
</div> 
 
<div id="staffdn"> 
 
    <ul> 
 
    <li><img src="Staff-memebers.png"></li> 
 
    <li><img src="commands.png"></li> 
 
    </ul> 
 
</div>

+0

它會被發現在CSS中定義'display:none'。問題是jQuery的'show()'和'hide()'不會操縱'visibility'。 – showdev

+0

@showdev對於'visibility'有問題,這就是我要求OP不要使用它的原因。那麼最好的方法是什麼? –

+0

你的回答很好。我只是沒有看到「在加載時」,「沒有在CSS中定義隱藏樣式」或「在加載頁面時隱藏」的目的。用CSS隱藏元素也可以工作,如[此處顯示](http://jsfiddle.net/qeh6wy9k/)。另外,我想添加一些解釋,爲什麼'能見度'在這裏不起作用。 – showdev