在滚动上获取鼠标位置 [英] 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....
还是谢谢大家:)
这篇关于在滚动上获取鼠标位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文