【发布时间】:2021-09-16 12:58:11
【问题描述】:
当我在 media-slider-wrap 内移动光标时,滑块分页会跟随光标,这就是我想要的。但是当鼠标离开 media-slider-wrap 时,slider-paging 应该立即消失,而是一直跟随鼠标。快速移动光标...
知道如何解决这个问题吗?
Codepen供参考
$(document).ready(function(){
$(".slider").each(function () {
_this = $(this);
_this.mousemove(function(e){
var offset = _this.offset();
var rect = e.currentTarget.getBoundingClientRect();
var x = (e.clientX - rect.left);
var y = (e.clientY - rect.top);
$(this).find('.slider-paging').show();
$(this).find('.slider-paging').css("top", y).css("left", x);
});
_this.mouseleave(function(e){
$(this).find('.slider-paging').hide();
});
});
});
.media-slider-wrap {
width: fit-content;
}
.slider-paging {
position: absolute;
top: 0;
left: 0;
display:none;
}
.slider-image {
height: 500px;
width: 500px;
background: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<section class="media-slider-wrap">
<div class="slider">
<div class="slider-image"></div>
<div class="slider-paging">1/4</div>
</div>
</section>
【问题讨论】:
-
你想让
.slider-paging在鼠标离开红色区域时消失? -
是的。如果您在离开该区域的那一刻快速移动鼠标,它就会消失,但如果您慢慢移出它,它会保持...
-
你将
mouseleave绑定在比红色区域大的.media-slider-wrap上,所以当你认为鼠标应该离开红色区域,但实际上并没有离开.media-slider-wrap,所以mouseleave不是触发。 -
但是如果我更改父容器以匹配图像的大小,我仍然有确切的问题。查看更新的 sn-p/codepen
-
你的 .slider div 仍然是全屏宽度,这使得 .media-slider-wrap 全屏宽度
标签: javascript html jquery css