【发布时间】:2020-06-12 07:21:05
【问题描述】:
我寻找了许多类似的问题,但无法解决我的问题。 这里我只粘贴了我的代码中的一个列表项。我需要在 mousemove 事件上创建 span list 项目,并在鼠标移动时从其父项设置其 left-offset。因为我从来没有尝试过这样的事情,所以我用代码做了很多实验来实现这个-
document.querySelector("li a").addEventListener("mousemove",(event)=> {
let span;
let alreadyHasSpan = event.target.hasChildNodes().length > 1; //default length=1
if(!alreadyHasSpan) {
span = $(`<span class="a-effect"></span>`);
span.appendTo(event.target);
}
let targetLeftPos = event.target.getBoundingClientRect().left;
span.css("left",`${event.clientX-targetLeftPos}px`);
$(this).mouseleave(function () {
span.remove();
});
}, false);
a {
position: relative;
}
.a-effect {
position: absolute; left: 0;
height: 100%;
width: 2%;
background: black;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<li class="nav-item active">
<a href="/" class="nav-link">Product</a>
</li>
在我的浏览器上,span 移动但后面有尾随标志-
除了尾随标志外,经常会错过显示span。在这个问题的sn-ps上,显示问题就更糟了。
出了什么问题,我该如何解决?
【问题讨论】:
标签: javascript html jquery css cursor-position