JavaScript获取当前鼠标指针坐标

接触了HTML+CSS+JS一小段时间了,发现如果想要有比较好的用户体验,良好的交互,在CSS动画的同时,必需要用到获取当前鼠标指针所在的坐标。

比如一款jQuery/CSS3写的侧边栏菜单,所用到的效果,点击每一个li选项时,都有一片淡白色缩放,非常美观。点击查看。


于是我也寻思做一下类似这样的效果,研究了一番后发现动画大概是这样的:

.ink {
	display: block;
	position: absolute;
	background: rgba(255,255,255,.3);
	border-radius: 100%;
	-webkit-transform: scale(0);
	-moz-transform: scale(0);
	-ms-transform: scale(0);
	-o-transform: scale(0);
	transform: scale(0)
}

.animate-ink {
	-webkit-animation: ripple .5s linear;
	-moz-animation: ripple .5s linear;
	-ms-animation: ripple .5s linear;
	-o-animation: ripple .5s linear;
	animation: ripple .5s linear
}

@-webkit-keyframes ripple {
	100% {
		opacity: 0;
		-webkit-transform: scale(2.5)
	}
}

@-moz-keyframes ripple {
	100% {
		opacity: 0;
		-moz-transform: scale(2.5)
	}
}

@-o-keyframes ripple {
	100% {
		opacity: 0;
		-o-transform: scale(2.5)
	}
}

@keyframes ripple {
	100% {
		opacity: 0;
		transform: scale(2.5)
	}
}
定义了一个叫做ripple的动画,但是注意细节就不容易发现,页面中点哪个位置,就会以那个坐标点进行白色缩放,打开F12查看发现,每个被点击的li除了被加上定义的那个动画效果外,还会添加上一个style,每次点击的位置不一样,style里的坐标也就不一样,如下图画红色横线部分。



那么这个细节靠的就是获取当前坐标来实现的。

以下是一个获取当前鼠标位置的Demo。(JavaScript实现)

<html> 
<head> 
<meta charset="UTF-8"/> 
<title>JavaScript获取当前鼠标指针坐标</title> 
</head> 
<body> 
<script type="text/javascript";> 
function mouseMove(e) { 
    var mousePos = mouseCoords(e); 
    document.getElementById("xxx").value = mousePos.x; 
    document.getElementById("yyy").value = mousePos.y; 
} 
function mouseCoords(e) { 
    if(e.pageX || e.pageY){ 
        return {x:e.pageX, y:e.pageY}; 
    }
    return{ 
        x:e.clientX + document.body.scrollLeft - document.body.clientLeft, 
        y:e.clientY + document.body.scrollTop - document.body.clientTop 
    }; 
} 
document.onmousemove = mouseMove; 
</script> 
鼠标X轴: 
<input id="xxx" type=text> 
鼠标Y轴: 
<input id="yyy" type=text> 
</body>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值