JS怎么判断鼠标进入离开的方向?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style type="text/css">
#box{
width: 300px;
height: 300px;
margin: 80px auto 80px;
border:1px solid red;
}
</style>
</head>
<body>
<div id="box"></div>
</body>
<script type="text/javascript">
var wz = function(wrap){
var wrap = document.getElementById(wrap);
var hoverDir = function(e){
var w = wrap.offsetWidth,
h = wrap.offsetHeight,
x = ( e.clientX - wrap.offsetLeft - ( w / 2 ) ) * ( w > h ? ( h / w ) : 1 ),
y = (e.clientY - wrap.offsetTop - (h / 2)) * (h > w ? (w / h) : 1),
// 上(0) 右(1) 下(2) 左(3)
direction = Math.round( ( ( ( Math.atan2( y, x ) * ( 180 / Math.PI ) ) + 180 ) / 90) + 3 ) % 4,
eventType = e.type,
dirName = new Array('上方','右侧','下方','左侧');
if( e.type == 'mouseover' || e.type == 'mouseenter' ){
wrap.innerHTML = dirName[direction] + '进入';
}else{
wrap.innerHTML = dirName[direction] + '离开';
}
}
if( window.addEventListener ){
wrap.addEventListener( 'mouseover',hoverDir,false );
wrap.addEventListener( 'mouseout',hoverDir,false );
}else if( window.attachEvent ){
wrap.attachEvent( 'onmouseenter',hoverDir );
wrap.attachEvent( 'onmouseleave',hoverDir );
}
}
wz('box');
</script>
</html>
更多内容请见原文,原文转载自:http://www.mark-to-win.com/tutorial/50910.html
分类:
前端
标签:
javascript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?