我需要一些帮助。
我想让一个图像出现在鼠标悬停的div上。
由于多次尝试失败,我没有可以展示的代码。
谢谢。
谢谢。
根据你的问题和评论(“你好,感谢回复。图像需要在鼠标点上方弹出。移动鼠标会更改图像位置到鼠标所在位置。谢谢!”),我创建了以下解决方案:
当鼠标悬停在div元素上时:图片变得可见并跟随鼠标指针。
单击:图片变得不可见并停止跟随。
HTML:
<div class="someDiv">
<p>Foobar</p>
</div>
<img style="display:none" class="image" src="http://www.budick.eu/images/logo-BudickEu.jpg"/>
JavaScript:
$(".someDiv").hover(function() {
$(document).mousemove(function(event) {
$(".image").css({"position":"absolute","left":event.clientX ,"top":event.clientY }).show();
});
});
//end movement with click
$(document).bind("click",function(){
$(document).unbind("mousemove");
$(".image").hide();
});
你肯定不需要使用 JavaScript。这个在最新版的 Chrome 上可以工作,使用供应商前缀来进行转换。
HTML
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
<span id="mouseOver"><img src="http://placekitten.com/120/120">Mouse Over This</span>
</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
CSS
#mouseOver {
display: inline;
position: relative;
}
#mouseOver img {
position: absolute;
left: 50%;
transform: translate(-50%);
bottom: 1em;
opacity: 0;
pointer-events: none;
transition-duration: 800ms;
}
#mouseOver:hover img {
opacity: 1;
transition-duration: 400ms;
}
您可以使用 hover
事件:
$("div").hover(function() {
$("img").show();
}, function() {
$("img").hide();
});
这将替换文本
$(document).ready(function(){
$('#mouseOver').mouseover(function(e){
$('#imageReplace').empty()
$('#imageReplace').append("<img src=\"http://placekitten.com/120/120\" />");
})
})
empty
函数并不是必须的,但我认为这是一个好习惯,因为如果你不经常使用 .empty
和 .remove
,很容易忘记从 DOM 中解除事件绑定。