javascript - 为什么鼠标在 JavaScript 中会随着偏移量反弹到顶部?
问题描述
我已经创建了一个鼠标移动效果,就像当你在粉红色框中移动鼠标(它实际上是一个部分标签)时,文本变得透明和笔触。在那个粉红色的框中,我创建了两个段落标签并将它们包装在 中div
,如果 div 中有一个元素,效果很好,但如果我增加 div 中的元素数量并尝试在那个框中移动光标,一旦光标到达中间(或进入另一个元素),它就会突然到顶部(意味着黄色圆圈到顶部),另一个问题是,如果我以非常快的速度移动鼠标拿着黄色圆圈框大多数时候光标移出黄色圆圈并且圆圈停止移动。
那么谁能告诉我为什么会这样以及如何解决这些问题?
这是我的代码:
let a = document.querySelector(".test")
a.addEventListener("mousemove",function(e){
a.classList.add("test1")
a.style.setProperty("--x",e.offsetX + "px")
a.style.setProperty("--y",e.offsetY + "px")
//console.log(e.offsetY)
})
body {
background-color: #ccc;
text-align: center;
margin-top: 100px;
}
.bgcolor {
background-color: black;
color: rgba(255, 255, 255, 0.8);
}
section{
/* width:800px;
height:250px; */
margin: 0 auto;
border: 1px solid #000;
position: relative;
}
section p{
font-size: 1em;
}
section div{
border: 1px solid #000;
position: absolute;
top: 0;
left: 0;
background: pink;
color:white;
font-size:2em;
height:450px;
}
section div:nth-child(2){
clip-path:circle(100px at 0 0 );
background: yellow;
}
.test1{
clip-path:circle(100px at var(--x) var(--y)) !important;
}
section div:nth-child(2) p{
-webkit-text-stroke:1px;
-webkit-text-stroke-color:white;
color: transparent;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<section>
<div>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Odit dolores officiis laborum distinctio vitae sint illo, perspiciatis ullam sed recusandae. helllo</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellendus, molestias. Aliquid obcaecati sit vero optio omnis cumque. Fugiat placeat officiis quidem laborum quod ad!</p>
</div>
<div class=test>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Odit dolores officiis laborum distinctio vitae sint illo, perspiciatis ullam sed recusandae.</p>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolores iste aliquam unde doloremque dignissimos ullam quis eveniet, nostrum nisi iusto, inventore nam quibusdam exercitationem.</p>
</div>
</section>
</body>
</html>
解决方案
推荐阅读
- numpy - 使用 anaconda 在 ubuntu 上安装带有 MKL 的 numpy 1.19?
- arrays - 在 C 中通过引用传递数组
- python - 预期 conv2d 输入具有形状 (5665,445,3) 但得到了形状 (1,445,3) 的数组
- nginx - 里面有域名的空白页
- performance - 如何在 puppeteer 下加快 Chromium 加载过程,绕过代理检查
- python - 计划和计时器的 PYQT5 线程问题
- c# - 如何在 C# 中执行此 SQL 命令?
- r - 如何将独特的观察结果转化为 R 中的变量(列)?
- python - 关于直接控制台到Pyqt GUI的两个问题
- python - 用一些参数合并两个excel文件