获取滚动条上的鼠标位置 [英] Get mouse position on scroll
本文介绍了获取滚动条上的鼠标位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我向下滚动或向上滚动时如何获取鼠标位置
how can i get the mouse position when i scroll down or scroll up
我尝试过
$(document).mousemove(function(event) {
captureMousePosition(event);
}).scroll(function(event) {
xMousePos = event.pageX + $(document).scrollLeft();
yMousePos = event.pageY + $(document).scrollTop();
window.status = "x = " + xMousePos + " y = " + yMousePos;
});
function captureMousePosition(event){
xMousePos = event.pageX;
yMousePos = event.pageY;
window.status = "x = " + xMousePos + " y = " + yMousePos;
}
但是没有用,我想要鼠标相对于页面顶部的确切位置而不是相对于窗口(框架)
but didnt worked i want the exact position of mouse relative to the top of page not in respect to window(frame)
推荐答案
我们无法获得滚动时的鼠标当前位置,而只能获得相对于上一个位置的滚动量 因此将其更改为:
we cannot get mouse current position on scroll we can just get how much it scrolled relative to last position so changed it to :
var xMousePos = 0;
var yMousePos = 0;
var lastScrolledLeft = 0;
var lastScrolledTop = 0;
$(document).mousemove(function(event) {
captureMousePosition(event);
})
$(window).scroll(function(event) {
if(lastScrolledLeft != $(document).scrollLeft()){
xMousePos -= lastScrolledLeft;
lastScrolledLeft = $(document).scrollLeft();
xMousePos += lastScrolledLeft;
}
if(lastScrolledTop != $(document).scrollTop()){
yMousePos -= lastScrolledTop;
lastScrolledTop = $(document).scrollTop();
yMousePos += lastScrolledTop;
}
window.status = "x = " + xMousePos + " y = " + yMousePos;
});
function captureMousePosition(event){
xMousePos = event.pageX;
yMousePos = event.pageY;
window.status = "x = " + xMousePos + " y = " + yMousePos;
}
它可以正常工作,并且可以在多种浏览器上工作....
it worked and is working on multi browsers....
无论如何,谢谢大家:)
anyways thanks all :)
这篇关于获取滚动条上的鼠标位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文