微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

冲突自定义光标 mousemove 和元素 mouseenter

如何解决冲突自定义光标 mousemove 和元素 mouseenter

问题是关于一些 JS。我需要有一个带有 mouseenter 和 mouseleave 的 eventListener。出于某种原因,代码只适用于 onmouseenter/onmouseleave,但行为类似于 mouSEOver 当光标位于元素上时,它会触发多次。 我有一个动画反应,当鼠标进入以及带有鼠标移动的自定义光标时应触发。因此,当进入元素时,mosue 会再次启动动画。 任何人都知道如何解决这个问题,或者知道为什么 mouseenter/mouseleave 不起作用?

我的 HTML

<div id="main">
  <div class="cursor"> 
    <div class="cto-overlay">
      text
    </div>
  </div>
</div>

我的 CSS

#main {
background: yellow;
}
.cursor {
  display:block;
  position:absolute;
}

.cto-overlay {
  width: 100%;
  height: 56%;
  background: var(--popUp);
  position: absolute;
  opacity: 0;
  animation: none;
}

我的JS

//Here the Cursor

function customCursor(event){
  const el = document.querySelector(".cursor");
  el.style.top = event.clientY + "px";
  el.style.left = event.clientX + "px";
        }
document.getElementById("main").addEventListener('mousemove',customCursor);

//Here the overlay

var kdg = document.getElementsByClassName("cto-overlay");
var n = kdg.length;

function changeOpacity(opacity) {
    for(var i = 0; i < n; i ++) {
        kdg[i].style.opacity = opacity;
    }
}
for(var i = 0; i < n; i ++) {
    kdg[i].onmouseenter = function() {
        changeOpacity("1");
    };
    kdg[i].onmouseleave = function() {
        changeOpacity("0");
    };
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。