javascript(21)鼠标移动事件

鼠标移动对象:
onmousemove

事件对象:
    在事件的响应函数被触发时,浏览器每一次都会将该事件对象作为实参传入响应函数
    该事件对象包含了一切当前事件相关的一切信息,比如:鼠标的坐标,键盘上那个键被按下,鼠标滚轮滚动的方向

        在IE8以及以下的浏览器中,响应函数被触发时,不会传递函数对象,而是将事件对象作为window对象的属性保存的(event)

练习:
1.显示鼠标在方块中的位置

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			*{
				margin:0px;
				padding:0px;
			}
			#box{
				width:100px;
				height:100px;
				background-color: bisque;
			}
			#show{
				margin-top:20px; 
				width:100px;
				height:20px;
				border:solid 1px darkcyan;
			}
		</style>
		<script>
			window.οnlοad=function(){
				var box=document.getElementById("box");
				var show=document.getElementById("show");
				var Y;
				var X;
				//查看整个页面中的clientX,clientY
				//在IE8以及以下,通过event来查看(window的属性)
				box.οnmοusemοve=function(event){
					//考虑兼容性,如果event不存在,
					//就将event.window赋值给event
					event=event||window.event;
					Y=event.clientY;
					X=event.clientX;
					show.innerHTML="X="+X+"         Y="+Y;
				};
			};
		</script>
	</head>
	<body>
		<div id="box"></div>
		<div id="show"></div>
	</body>
</html>

2.拖动div小方块

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style>
			*{
				margin:0px;
				padding:0px;
				width:1000px;
				width:1000px;
			}
			#box{
				width:100px;
				height:100px;
				background-color: royalblue;
				/*开启绝对定位,使方块可以移动*/
				position:absolute;
			}
			#show{
				margin-top:120px;
				width:100px;
				height:30px;
				border: solid 2px bisque;
			}
		</style>
		<script>
			window.onload=function(){
				var box=document.getElementById("box");
				var Y;
				var X;
				//修正方块的位置,让鼠标在方块的中心
				var top=box.offsetHeight/2;
				var left=box.offsetWidth/2;
				//在鼠标进入box的时候触发移动鼠标事件
				box.onmousemove=function(){
					//这样,即使鼠标脱离了box,也可以让鼠标进行移动
					document.onmousemove=function(event){
						event=event||window.event;
						//获取鼠标的位置
						Y=event.clientY;
						X=event.clientX;
						//当页面有滚动条的时候,获取鼠标位置就变了.在滚动条下面的时候,方块就不会再向下移动了
						//原因:用clientY,X的时候他们有最大值,就是当前显示页面的高宽
						//通过scroll来修正水平,垂直偏移量
						//Chrome中偏移量通过document.body获得,而Firefox通过document.documentElement来获取
						/*var scrollY=document.documentElement.scrollTop;
						var scrollX=document.documentElement.scrollLeft;*/
						var scrollY=document.body.scrollTop;
						var scrollX=document.body.scrollLeft;
						show.innerHTML="X="+scrollX+"         Y="+scrollY;
						//设置方块的位置
						//一般设置width都是以px为单位,得到的x,y是数字,加上px
						box.style.top=Y-top+scrollY+"px";
						box.style.left=X-left+scrollX+"px";
					
					};
					
				};
			};
			
		</script>
	</head>
	<body>
		<div id="box"></div>
		<div id="show"></div>
	</body>
</html>

也可以用pageY,pageX来获取当前鼠标的位置,但是IE8以及以下浏览器不支持
通过event来使用pageY,pageX(很好用的)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值