前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >JS怎么判断鼠标进入离开的方向?

JS怎么判断鼠标进入离开的方向?

作者头像
马克社区
发布于 2022-07-06 12:41:29
发布于 2022-07-06 12:41:29
4.6K00
代码可运行
举报
文章被收录于专栏:高端IT高端IT
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!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>
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647

更多内容请见原文,原文转载自:http://www.mark-to-win.com/tutorial/50910.html

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JavaScript 事件绑定
事件绑定分为两种:一种是传统事件绑定(内联模型,脚本模型),一种是现代事件绑定(DOM2级模型)。现代事件绑定在传统绑定上提供了更强大更方便的功能。 一.传统事件绑定的问题 传统事件绑定有内联模型和脚本模型,内联模型我们不做讨论,基本很少去用。先来看一下脚本模型,脚本模型将一个函数赋值给一个事件处理函数。 var box = document.getElementById('box');//获取元素 box.onclick = function () {//元素点击触发事件 alert('Lee'); };
汤高
2018/01/11
3.4K0
前端day16-JS(WebApi)学习笔记(事件补充、事件冒泡与捕获)
var code = e.keyCode || e.charCode || e.which;
帅的一麻皮
2020/05/05
1.8K0
js封装好的模仿qq消息弹窗代码
在我们的日常开发中,或者生活中,经常需要用到弹出窗。这里我们就用js模拟一下qq消息一样的弹出窗。
业余草
2019/01/21
4.8K0
拖放实现--兼容手机与pc端 原
拖放是一种非常流行的用户界面模式。它的概念很简单:点击某个对象,并按住鼠标按钮不放,将鼠标移到到另一个区域,然后释放按钮将对象放到这里。 拖放的基本概念很简单:创建一个绝对定位的元素,使其可以用鼠标移到。
tianyawhl
2019/04/04
1.2K0
ASP.NET AJAX(12)__浏览器兼容功能判断浏览器的类型和版本Sys.Browser针对DOM元素的兼容操作针对DOM事件的兼容操作
目前,常见的浏览器IE(6,8,9),chrome,firefox,safari等,还有国内的一些曾经靠恐吓用户来提高使用率的某浏览器(河蟹社会),这些浏览器对于Javascript的语言特性实现大致是相同的,但是对于DOM操作方式却大相径庭,所以我们通常需要自己对不同浏览器对于DOM的操作方式进行分而治之,或者我们往往是使用一些Javascript框架提供的兼容功能,当然也有我们的Microsoft AJAX Library 判断浏览器的类型和版本 浏览器兼容层的优势在于,我们可以使用同样的编码方式,让相
小白哥哥
2018/03/07
1.2K0
ASP.NET AJAX(12)__浏览器兼容功能判断浏览器的类型和版本Sys.Browser针对DOM元素的兼容操作针对DOM事件的兼容操作
3d标签云实现过程(tagcloud.js)同步原生和 vue
何处锦绣不灰堆
2023/11/23
8810
3d标签云实现过程(tagcloud.js)同步原生和 vue
【如果你要学JS XV】——趣学[ 阻止冒泡事件、常见的鼠标事件和键盘事件 ]
简单来说就是this指向的是绑定事件的元素,e.target返回的是所触发事件的元素
像素人
2023/12/28
8050
【如果你要学JS XV】——趣学[ 阻止冒泡事件、常见的鼠标事件和键盘事件 ]
让交互更加生动!有意思的鼠标跟随 3D 旋转动效
本文,就将讲述如何使用纯 CSS 实现类似的交互效果,以及,借助 JavaScript 绑定鼠标事件,快速还原上述效果。
Sb_Coco
2022/04/28
1.1K0
让交互更加生动!有意思的鼠标跟随 3D 旋转动效
“穿透”层的鼠标事件
需要实现如下的效果,有一个浮动层,需要层级在它之下的一个元素也能照常响应相应的事件
meteoric
2018/11/15
1.7K0
前端游戏巨制! CSS居然可以做3D游戏了
了解过css3D属性的同学应该都了解过perspective、perspective-origin、transform-style: preserve-3d这个三个属性值, 它们构成了CSS的3d世界.
Nealyang
2021/09/27
2.4K0
前端游戏巨制! CSS居然可以做3D游戏了
JS-事件之鼠标、键盘都能控制的下拉选框效果
<script type="text/javascript"> window.onload=function(e){ var box=document.getElementById('divselect'), title=box.getElementsByTagName('cite')[0], menu=box.getElementsByTagName('ul')[0], as=box.getElementsByTagName('a'),//as是一个
xing.org1^
2018/05/17
3.2K0
JS-DOM2级封装练习题--点击登录弹出登录对话框
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="author" content="gjf-702004176@qq.com" /> <title>Document-DOM2级封装练习题</title> <style> * { margin: 0; padding: 0; } .head { font-size: 12px; padding:
xing.org1^
2018/05/17
3.7K0
原生js编写的安全色拾色器
<html > <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <style type="text/css"> #abc-colorPicker .colorPick-close,#filter-colorPicker .colorPick-close{position:absolute;right:0;}
欢醉
2018/01/22
2.2K0
原生js编写的安全色拾色器
Js <判断鼠标移入移出方向>
主要通过 Math.atan2 来判断鼠标移入移出的方向来添加不同的 class 动画属性 ,进而实现的效果
网罗开发
2021/04/09
20.7K0
Js <判断鼠标移入移出方向>
纯js实现网页返回顶部功能(万能的兼容目前所有浏览器)
在web2.0时代,越来越多的网站如雨后春笋般的冒了出来。而且这些网站提供了很多我们常见的功能。如:返回顶部等等小特性。
业余草
2019/01/21
1.4K0
纯js实现网页返回顶部功能(万能的兼容目前所有浏览器)
js事件基础
可以实现点击一次按钮,执行两个函数里面的内容, 需要注意的是attachEvent方法和addEventListener的使用,这是一个兼容性的问题 兼容性:IE支持attachEvent而不支持addEventListener,否则会报错;而谷歌火狐则支持addEventlistener。所以存在兼容性的问题。
不愿意做鱼的小鲸鱼
2022/08/24
3.2K0
js事件基础
【如果你要学JS <21>】——事件绑定及解除DOM事件流
3.btn.onclick = function( {} 4.特点:注册事件的唯一性 5.同一个元素同一个事件只能设置一个处理函数 ,最 后注册的处理函数将会覆盖前面注册的处理函数
像素人
2024/01/05
2130
【如果你要学JS <21>】——事件绑定及解除DOM事件流
js中的事件(event)
我们可以简单的把事件理解为浏览器的感知系统。比如说:他可以感觉到用户是否点击(click)了页面、鼠标是否进入了页面的某个元素上面(mouseover或mouseenter)、鼠标是否离开了网页(mouseout或mouseleave)、浏览器是都加载完了页面上的资源(window.onload)、文档树是否生成(DOMContentLoaded)、键盘上的某个键是否按下(keydown)、鼠标的滚轮是否滚动了等等。
山河木马
2019/03/05
7K0
阻止mouseover冒泡行为_onmousedown是什么意思
onmouseenter 事件在鼠标指针进入到绑定事件的那个元素上时触发。 该事件通常与 onmouseleave(在鼠标指针离开绑定事件的那个元素上时触发) 事件一同使用。 onmouseenter 事件类似于 onmouseover 事件。 唯一的区别是 onmouseenter 事件不支持冒泡 。
全栈程序员站长
2022/11/10
1.6K0
阻止mouseover冒泡行为_onmousedown是什么意思
你是否有一个梦想?用JavaScript开发一款自定义配置视频播放器
沉寂了一周了,打算把这几天的结果呈现给大家。这几天抽空就一直在搞一个自定义视频播放器,为什么会有如此想法?是因为之前看一些学习视频网站时,看到它们做的视频播放器非常Nice!于是,就打算抽空开发一款属于自己的视频播放器。话不多说,一起来实战吧!
Vam的金豆之路
2021/12/01
1.1K0
你是否有一个梦想?用JavaScript开发一款自定义配置视频播放器
推荐阅读
相关推荐
JavaScript 事件绑定
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文