javaee论坛

超级管理员

98

帖子

374

回复

10847

积分

楼主
发表于 2017-07-14 15:01:10 | 查看: 1414 | 回复: 3

 javascript怎么获取鼠标点击位置和滚动条高度, 

/********************
 * 取窗口滚动条高度 
 ******************/
function getScrollTop()
{
    var scrollTop=0;
    if(document.documentElement&&document.documentElement.scrollTop)
    {
        scrollTop=document.documentElement.scrollTop;
    }
    else if(document.body)
    {
        scrollTop=document.body.scrollTop;
    }
    return scrollTop;
}
/********************
*获取鼠标位置
********************/
var x=window.event.clientX;
//加上滚动条高度
var y=window.event.clientY+getScrollTop();



超级管理员

98

帖子

374

回复

10847

积分
沙发
发表于 2017-07-14 22:20:52

以上代码不兼容火狐浏览器,可用以下代码实现

var clickX;  
var clickY;  
//获取事件  
function getEvent() {  
    if (document.all) {  
        return window.event;// 如果是ie  
    }  
    func = getEvent.caller;  
    while (func != null) {  
        var arg0 = func.arguments[0];  
        if (arg0) {  
            if ((arg0.constructor == Event || arg0.constructor == MouseEvent)  
                    || (typeof(arg0) == "object" && arg0.preventDefault && arg0.stopPropagation)) {  
                return arg0;  
            }  
        }  
        func = func.caller;  
    }  
    return null;  
}  
//在此函数中给clickX和clickY赋值  
function getClickPosition(){  
    var evt=getEvent();  
    if(null!=evt){  
        var el=evt.target||evt.srcElement;  
        var top=0;  
        var left=0;  
        while(el){//递归求元素所在页面的位置  
            top+=el.offsetTop;//el.offsetTop的值是el元素的上起始位置相对于父元素的上起始位置的差值,所以需要递归相加  
            left+=el.offsetLeft;  
            el=el.offsetParent;  
        }  
        clickX=left;  
        clickY=top;  
    }else{  
        }  
}


普通会员

1

帖子

294

回复

300

积分
板凳
发表于 2023-08-04 23:14:43

围观

普通会员

0

帖子

289

回复

301

积分
地板
发表于 2023-09-19 03:41:39

很好

您需要登录后才可以回帖 登录 | 立即注册

触屏版| 电脑版

技术支持 历史网 V2.0 © 2016-2017