在滚动上获取鼠标位置 [英] Get mouse position on scroll

查看:48
本文介绍了在滚动上获取鼠标位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在向下滚动或向上滚动时获取鼠标位置

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆