码迷,mamicode.com
首页 > 其他好文 > 详细

一天一点新东西-鼠标进入容器方向判断

时间:2016-09-05 22:20:02      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

很久之前思考的这个东西,怎么判断鼠标是从哪个方向进入元素的?有代码和一点点解释,用法很精妙,记下来,希望以后看见能记起。

index.html

<!DOCTYPE html>
<html>
<head>
<style>
#wrap{height:100px;width:100px;background-color:#000000;}
</style>
<script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
<div id="wrap"></div>
<div id="result"></div>
</body>
<script>
$("#wrap").bind("mouseenter mouseleave",function(e) {
var w = $(this).width();
var h = $(this).height();
var x = (e.pageX - this.offsetLeft - (w / 2)) * (w > h ? (h / w) : 1);
var y = (e.pageY - this.offsetTop - (h / 2)) * (h > w ? (w / h) : 1);
var direction = Math.round((((Math.atan2(y, x) * (180 / Math.PI)) + 180) / 90) + 3) % 4; //direction的值为“0,1,2,3”分别对应着“上,右,下,左”
var eventType = e.type;
var dirName = new Array(‘上方‘,‘右侧‘,‘下方‘,‘左侧‘);
if(e.type == ‘mouseenter‘){
$("#result").html(dirName[direction]+‘进入‘);
}else{
$(‘#result‘).html(dirName[direction]+‘离开‘);
}
});
</script>
</html>
关键性的东西,在于理解下面这张图上面的几个参数变量,和atan2()函数的用法。
技术分享
不多说,自己领悟到的,远比解释来得深刻,数学中的象限问题。

一天一点新东西-鼠标进入容器方向判断

标签:

原文地址:http://www.cnblogs.com/stupidkid/p/5843775.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!