javascript 如何防止锚标签将光标变为指针?

az31mfrm  于 2023-03-28  发布在  Java
关注(0)|答案(3)|浏览(130)
let prevDom = null;

document.addEventListener("click", function(e) {
  e.preventDefault();
}, false);

document.body.style.cursor = "default !important";

document.addEventListener("mousemove", function(e) {
  e.target.style.pointerEvents = "none";
  if (prevDom !== null) {
    prevDom.style.pointerEvents = "";
  }
  prevDom = e.target;
}, false);
<a href="/">click me!!!!</a>
<br/>
<br/>
<a href="/">no click me!!!!</a>
<br/>
<br/>
<a href="/">hahaha</a>

我正在做一个扩展,允许用户通过悬停在DOM元素上来高亮显示它们。当用户悬停时,我想禁用点击事件并保持光标处于默认状态。为此,我添加了以下代码:

document.addEventListener("click", function(e) {
    e.preventDefault();
}, false);

document.body.style.cursor = "default !important";

虽然这段代码阻止了任何点击事件的触发,但它并不能阻止光标在悬停在锚标签上时变为指针。我试图通过mousemove的事件侦听器简单地禁用指针事件,但这里的问题是它在两种状态之间 Flink 。比如,在切换到默认状态之前,你会看到指针的几分之一秒。这确实妨碍了用户体验。所以我想知道是否有一种方法可以防止光标变成指针。
Click here查看示例

swvgeqrz

swvgeqrz1#

使用cursor: default !important;,但用于a:hover状态,如下所示。
如果您需要它只应用于页面上的某些链接,请在链接上使用一个类,并在CSS规则中使用a.yourclass:hover

a.myclass:hover {
  cursor: default !important;
}
<a href="#" class="myclass">click me!!!!</a>
<br/>
<br/>
<a href="#" class="myclass">no click me!!!!</a>
<br/>
<br/>
<a href="#" class="myclass">hahaha</a>
yqlxgs2m

yqlxgs2m2#

在CSS中:

a:hover {
  cursor: default;
  pointer-events: none;
}
fwzugrvs

fwzugrvs3#

最简单的方法是为所有锚标记添加一个CSS规则,如下所示

a {

cursor: default;

}

相关问题