我试图做到这一点,以便在将鼠标悬停在一个 div 上时,该 div 的子项附加到光标上,当您离开该 div 时,该子项返回到其原始位置。
这是我到目前为止所拥有的:
$('div').each(function() {
var img = $(this).find( "figure" );
var offset = img.offset();
var originLeft = offset.left;
var originTop = offset.top;
$('div').mousemove(function(e) {
img.addClass('active');
img.css({
transform: 'translateX(' + (e.pageX - originLeft/2 ) + 'px) translateY(' + (e.pageY - originTop) + 'px)'
});
}).mouseleave(function() {
img.removeClass('active');
img.css({
transform: 'translateX(0) translateY(0)'
});
});
});
div {
height: 250px;
width: 250px;
background: #eee;
}
div:nth-child(2) {
background: #ccc;
}
figure {
display: block;
height: 50px;
width: 50px;
background: blue;
margin: 0;
transition: transform 500ms ease;
}
.active {
transition: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<figure></figure>
</div>
<div>
<figure></figure>
</div>
问题是,如果页面上有多个事件,它就不起作用,而且 mouseleave 事件似乎有问题:有时它需要一秒钟或者在返回到原始位置之前有一些闪烁。
慕仙森
炎炎设计
相关分类