Javascript img正在阻止悬停功能启动
我需要以下方面的帮助: 我有一个图像放在我的身体,它有一个悬停功能Javascript img正在阻止悬停功能启动,javascript,jquery,html,Javascript,Jquery,Html,我需要以下方面的帮助: 我有一个图像放在我的身体,它有一个悬停功能 <div id="wrapper"> <img style="position: absolute;" src="img/image.png" name="man" width="150" id="man_1" /> </div> $("#man_1").hover(function () { $('#wrapper').append('<img id="hoverimg"
<div id="wrapper">
<img style="position: absolute;" src="img/image.png" name="man" width="150" id="man_1" />
</div>
$("#man_1").hover(function () {
$('#wrapper').append('<img id="hoverimg" src="bla.png">');
console.log("enter mouser");
},function () {
$('#hoverimg').remove();
console.log("leave mouse");
});
$(“#man_1”)。悬停(函数(){
$('#包装器')。附加('');
console.log(“输入鼠标”);
},函数(){
$('#hoverimg')。删除();
log(“离开鼠标”);
});
正如你看到的,当我在图像上悬停时,它会附加另一个图像,该图像具有与#man_1
相同的顶部和左侧值。问题是,当我离开鼠标时,删除不会触发,因为鼠标实际上位于新的hoverimg上
希望你明白我的意思!谢谢您必须使用mouseenter和mouseout事件
$("#man_1").mouseenter(
function() {
$('#wrapper').append('<img id="hoverimg" src="bla.png">');
console.log("enter mouser");
});
$('#hoverimg').mouseout(
function() {
$('#hoverimg').remove();
console.log("leave mouse");
}
);
$(“#man_1”).mouseenter(
函数(){
$('#包装器')。附加('');
console.log(“输入鼠标”);
});
$('#hoverimg').mouseout(
函数(){
$('#hoverimg')。删除();
log(“离开鼠标”);
}
);
您必须使用mouseenter和mouseout事件
$("#man_1").mouseenter(
function() {
$('#wrapper').append('<img id="hoverimg" src="bla.png">');
console.log("enter mouser");
});
$('#hoverimg').mouseout(
function() {
$('#hoverimg').remove();
console.log("leave mouse");
}
);
$(“#man_1”).mouseenter(
函数(){
$('#包装器')。附加('');
console.log(“输入鼠标”);
});
$('#hoverimg').mouseout(
函数(){
$('#hoverimg')。删除();
log(“离开鼠标”);
}
);
如果将悬停
事件绑定到#包装器
会怎么样
在这种情况下,这是可行的。如果您将
悬停
事件绑定到#包装器
会怎么样
在这方面,这是可行的。请看
$(“div.overout”).mouseover(函数(){
$(this.append(“”)
}).mouseout(函数(){
$(“#悬停”).remove();
});
我使用了mouseover
和mouseout
而不是hover
我明白了,因为您希望在mouseover上显示这两个图像,并删除mouseout上添加的图像。这对不对?请看一下
$(“div.overout”).mouseover(函数(){
$(this.append(“”)
}).mouseout(函数(){
$(“#悬停”).remove();
});
我使用了mouseover
和mouseout
而不是hover
我明白了,因为您希望在mouseover上显示这两个图像,并删除mouseout上添加的图像。这对不对?
也许通过另一个标记,可以更容易地实现这一点:
HTML
JS
也许通过另一个标记,可以更容易地实现这一点:
HTML
JS
将mouseleave处理程序添加到新图像并将其删除怎么样?或者更改旧图像的src属性而不是添加新图像?感谢这一点,这就是我以前制作的。但我需要第二张照片,这就是我为什么要问的原因!嗯,预期的行为是什么,我认为它对我有效:/这是有效的,因为附加的图像在悬停的图像后面。改变z-指数,你会看到它不会工作没有闪烁!无论如何,谢谢你的努力!将mouseleave处理程序添加到新图像并将其删除怎么样?或者更改旧图像的src属性而不是添加新图像?感谢这一点,这就是我以前制作的。但我需要第二张照片,这就是我为什么要问的原因!嗯,预期的行为是什么,我认为它对我有效:/这是有效的,因为附加的图像在悬停的图像后面。改变z-指数,你会看到它不会工作没有闪烁!无论如何,谢谢你的努力!我想你是指
mouseleave
而不是mouseout
?#man_1是一个img,不能包含其他元素。所以你可以两者都用。看,这应该是答案。我会在几分钟后检查!我想你是指mouseleave
而不是mouseout
?#man_1是一个img,不能包含其他元素。所以你可以两者都用。看,这应该是答案。我会在几分钟后检查!
<div id="wrapper">
<div class="photo">
<div class="image"><img src="http://placekitten.com/200/220" /></div>
<div class="size"><img src="http://placehold.it/200x40" /></div>
</div>
</div>
.photo {
position: relative;
height: 220px;
overflow: hidden;
width: 200px;
}
.photo .image {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 1;
}
.photo .size {
position: absolute;
height: 40px;
left: 0;
right: 0;
bottom: 0;
z-index: 2;
margin-bottom: -40px;
transition: margin-bottom 0.3s;
}
.photo .size.show {
margin-bottom: 0;
}
$(function () {
$('.photo')
.on('mouseenter', function () {
$(this).find('.size').addClass('show');
})
.on('mouseleave', function () {
$(this).find('.size').removeClass('show');
});
});