常用JavaScript函数 71 -(自我总结)

71、 javascript判断鼠标左右键点击-兼容ie、firefox、chrome等各大主流浏览器

72、 javascript获取鼠标当前位置(兼容IE和firefox)

 

 

71、 javascript判断鼠标左右键点击-兼容ie、firefox、chrome等各大主流浏览器

document.onmousedown=judgeMouseButton;
function judgeMouseButton(e){
	var e=window.event||e;//获取事件对象
	var value=e.button;
	if(value==2||value==3){
		alert('点击的是鼠标右键');
	}else{
		alert('点击的是鼠标左键');
	}
}

72、 javascript获取鼠标当前位置(兼容IE和firefox)

<script>
function mouseMove(ev){
    ev= ev || window.event;
    var mousePos = mouseCoords(ev);
    //alert(ev.pageX);
    document.getElementById("xxx").value = mousePos.x;
    document.getElementById("yyy").value = mousePos.y;
}
 
function mouseCoords(ev){
    if(ev.pageX || ev.pageY){
       return {x:ev.pageX, y:ev.pageY};
    }
    return {
       x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
       y:ev.clientY + document.body.scrollTop - document.body.clientTop
    };
}
document.onmousemove = mouseMove;
</script>
鼠标 X 轴: <input id=xxx type=text>
鼠标 Y 轴: <input id=yyy type=text>

或者:

/**
* 获取鼠标在页面上的位置
* @param ev		触发的事件
* @return		x:鼠标在页面上的横向位置, y:鼠标在页面上的纵向位置
*/
function getMousePoint(ev){
	//定义鼠标在视窗中的位置
	var point={
		x:0,
		y:0
	};
	//如果浏览器支持 pageYOffset, 通过 pageXOffset 和 pageYOffset 获取页面和视窗之间的距离
	if(typeof window.pageYOffset!='undefined'){
		point.x=window.pageXOffset;
		point.y=window.pageYOffset;
	}
	//如果浏览器支持 compatMode, 并且指定了 DOCTYPE, 通过 documentElement 获取滚动距离作为页面和视窗间的距离
	//IE 中, 当页面指定 DOCTYPE, compatMode 的值是 CSS1Compat, 否则 compatMode 的值是 BackCompat
	else if(typeof document.compatMode!='undefined'&&document.compatMode!='BackCompat'){
		point.x=document.documentElement.scrollLeft;
		point.y=document.documentElement.scrollTop;
	}
	//如果浏览器支持 document.body, 可以通过 document.body 来获取滚动高度
	else if(typeof document.body!='undefined'){
		point.x=document.body.scrollLeft;
		point.y=document.body.scrollTop;
	}
	//加上鼠标在视窗中的位置
	point.x+=ev.clientX;
	point.y+=ev.clientY;
	//返回鼠标在视窗中的位置
	return point;
	//document.write("X:"+point.x+"<br>Y:"+point.y);
}

 

Loading

Add a Comment

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.