<script type="text/javascript">
function show_sidebar()
{
document.getElementById('sidebar').style.visibility="visible";
}
function hide_sidebar()
{
document.getElementById('sidebar').style.visibility="hidden";
}
</script>
<img src="images/cart.jpg" width="80px" height="30px" onMouseOver="show_sidebar()" onMouseOut="hide_sidebar()">
<div id="sidebar">some thing</div>
这是我在mouseover和mouseout上显示和隐藏侧栏div的代码。它的工作,但我想要的是当我有鼠标悬停在图像上,侧边栏div显示,我希望侧栏div也显示当鼠标在侧边栏上。你怎么能这样做。
答案 0 :(得分:15)
如果你可以将它们包装在一个共同的父级中,那么只用CSS就可以了,不需要JavaScript。
<强> CSS:强>
#sidebar {
display: none;
}
.cart:hover #sidebar {
display:block;
}
<强> HTML:强>
<div class="cart">
<img src="images/cart.jpg" width="80px" height="30px" />
<div id="sidebar">some thing</div>
</div>
示例:强>
可以在不包装的情况下完成,但您必须确保图像和div重叠,以便光标可以移动到div中。包装它避免了这个问题。
另请注意,并非每个人都使用鼠标。
答案 1 :(得分:9)
将事件处理程序移动到包装器div以完成您想要的操作。
<div id="wrapper" onMouseOver="show_sidebar()" onMouseOut="hide_sidebar()">
<img src="images/cart.jpg" width="80px" height="30px">
<div id="sidebar">some thing</div>
</div>
答案 2 :(得分:3)
与css一起使用,更简单
<style>
#sidebar{
display : none;
}
img:hover ~ #sidebar {
display : block;
}
#sidebar:hover {
display : block;
}
</style>
<img src="images/cart.jpg" width="80px" height="30px" >
<div id="sidebar">some thing</div>
延迟:
<style>
#sidebar{
opacity : 0;
}
img:hover ~ #sidebar {
opacity : 1;
}
#sidebar:hover {
opacity : 1;
}
#sidebar:not(hover) {
animation-delay:2s;
-webkit-animation-delay:2s;
-webkit-transition: opacity 1s ease-out;
opacity : 0;
}
</style>
答案 3 :(得分:1)
这是:
http://jsfiddle.net/luckmattos/CV9uX/
使用Jquery
$('#img').hide();
$('#sidebar').mouseover(function () {
$('#img').show();
});
$('#sidebar').mouseout(function () {
$('#img').hide();
});
<强> HTML 强>
<a id="sidebar">Show on Over</a>
<div class="img"><img src="http://www.highsnobiety.com/files/2013/05/lamborghini-egoista-concept-car-9.jpg" width="250px" id="img">
</div>
答案 4 :(得分:-1)
隐形元素没有鼠标事件。试试这个:
<script type="text/javascript">
function show_sidebar()
{
document.getElementById('sidebar').style.opacity = 1;
}
function hide_sidebar()
{
document.getElementById('sidebar').style.opacity = 0;
}
</script>
<img src="images/cart.jpg" width="80px" height="30px" onMouseOver="show_sidebar()" onMouseOut="hide_sidebar()">
<div id="sidebar" style="opacity: 0;" onMouseOver="show_sidebar()">some thing</div>
答案 5 :(得分:-1)
我认为这是与最新的jquery版本一起使用的最佳且简便的方法。
<script>
$(document).ready(function(){
$("#div2").hide();
$("#div1").mouseover(function(){
$("#div2").fadeIn();
});
$("#div1").mouseout(function(){
$("#div2").fadeOut();
});
});
</script>
<div id="div1">Move the mouse pointer over this paragraph.</div>
<div id="div2" >div2.</div>
答案 6 :(得分:-2)
尝试
<script type="text/javascript">
function show_sidebar()
{
document.getElementById('sidebar').style.display="block";
}
function hide_sidebar()
{
document.getElementById('sidebar').style.display="none";
}
</script>
<img src="images/cart.jpg" width="80px" height="30px" onMouseOver="show_sidebar()" onMouseOut="hide_sidebar()">
<div id="sidebar">some thing</div>