[英]Updating the mouse position while scrolling
我正在尝试查找相对于整个文档的最新更新的当前鼠标 position。 我已经设置了一个滚动事件。
由于此事件不包含鼠标位置,因此我在此滚动事件中嵌套了另一个mousemove
事件侦听器。
尽管如此,我面临的问题是,如果用户将指针保持在同一个 position 并简单地用滚轮滚动,那么除非我移动鼠标,否则最新的 position 不会更新。
我应该怎么办? 我可以用什么来检测鼠标position? 我想要最简单的答案,因为我正在学习 css 和 js。
这是我的代码:
document.addEventListener('scroll', (e) => { document.addEventListener('mousemove', (e1) => { total_scroll = window.scrollY + e1.clientY; console.log("Current Pos: " + total_scroll); }) })
body { height: 2000px; }
我认为最好的解决方案是分离这些侦听器,并使用当前鼠标 position 不断更新一些变量,然后在滚动时使用该变量。
我之前的答案不正确,所以我再给一个:
<html lang="en">
<head>
<title>Document</title>
<style>
body {
height: 2000px;
}
</style>
</head>
<body>
<script>
let clientScrollY = 0;
document.addEventListener('mousemove', (e1) => {
clientScrollY = e1.clientY;
})
document.addEventListener('scroll', (e) => {
total_scroll = window.scrollY + clientScrollY;
console.log("Current Pos: " + total_scroll);
})
</script>
</body>
</html>
如果您想更新 onscroll 和 onmousemove,这里也是解决方案。
<html lang="en">
<head>
<title>Document</title>
<style>
body {
height: 2000px;
}
</style>
</head>
<body>
<script>
let clientScrollY = 0;
let totalScrollY = 0;
function updateTotalScrollY(){
totalScrollY = window.scrollY + clientScrollY;
console.log(totalScrollY);
}
document.addEventListener('mousemove', (e1) => {
clientScrollY = e1.clientY;
updateTotalScrollY();
})
document.addEventListener('scroll', (e) => {
updateTotalScrollY();
})
</script>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.