前往小程序,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 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
锁定屏幕相关知识「建议收藏」
(2)HKEY_CURRENT_USER/Software/Microsoft/Windows/CurentVersion/Polioies/Explores下的”No Save Setting”值为1则禁止修改桌面(需要重启)
全栈程序员站长
2022/09/13
1.2K0
C/C++ HOOK 全局 API
全局 Hook 不一定需要用到 Dll ,比如全局的鼠标钩子、键盘钩子都是不需要 Dll 的,但是要钩住 API,就需要 Dll 的协助了,下面直接放上 Dll 的代码,注意这里使用的是 MFC DLL。
微软技术分享
2022/12/28
1K0
C/C++ HOOK 全局 API
键盘钩子入门
钩子是操作系统消息处理的一种机制。通过钩子,应用程序可以安装一个钩子回调过程让系统调用,从而监视系统中的消息队列。在这些消息到达目标窗口之前对这些消息进行处理。
全栈程序员站长
2022/08/11
1K0
键盘钩子入门
使用鼠标
C语言Windows程序设计 -> 第十一天 -> 使用鼠标 鼠标的使用同样是通过获取Windows鼠标消息来获取用户当前的鼠标状态的。 一、鼠标的介绍     鼠标是计算机的输入设备之一, 在图形化的操作系统上, 鼠标的使用使一些复杂的操作变得简单, 随着科技的进步, 鼠标的种类也越来越多, 按接口类型可分为串行鼠标、PS/2鼠标、总线鼠标、USB鼠标(多为光电鼠标)四种。按其工作原理及其内部结构的不同可以分为机械式,光机式和光电式。     这里我们不讨论鼠标的硬件构造, 更多关于鼠标的硬
猿人谷
2018/01/17
2.7K0
使用鼠标
利用两个dll实现全局钩子
全局消息钩子的钩子函数一定要再dll中,然后启动安装钩子不能在dll中,要是我想在程序开始时安装钩子怎么办。很简单利用两个钩子就行了,只要安装钩子和钩子函数不在同一个dll就行了。
全栈程序员站长
2022/09/06
3250
一种在注入进程中使用WTL创建无焦点不在任务栏出现“吸附”窗口的方法和思路
        最近一直在做沙箱项目,在项目快接近结尾的时候,我想给在我们沙箱中运行的程序界面打上一个标记——标识其在我们沙箱中运行的。我大致想法是:在被注入程序的顶层窗口上方显示一个“标题性”窗口,顶层窗口外框外显示一个“异形”的空心窗口。这些窗口如影子般随着其被“吸附”窗口移动而移动,大小变化而变化。(转载请指明出处)以记事本为被注入程序为例:
方亮
2019/01/16
1.5K0
C++键盘钩子
Windows系统是建立在事件驱动的机制上的,整个系统都是通过消息传递来实现的。而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标的输入,屏幕取词,日志监视等等。可见,利用钩子可以实现许多特殊而有用的功能。因此,对于高级编程人员来说,掌握钩子的编程方法是很有必要的。
全栈程序员站长
2022/08/10
1.3K0
WPF取色器开发
前言 这里全局的键盘钩子和全局鼠标钩子是为了定义快捷键。 获取鼠标坐标 using System.Runtime.InteropServices; namespace ColorPicker.Utils { internal class ZPoint { [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern bool GetCursorPos(out POINT pt);
码客说
2022/03/13
1.8K0
Hook 技术简介
钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。这和前面我博客的窗口子类化都异曲同工,但是Hook可强大多了,我是这两天才开始看的,所以略知皮毛。
全栈程序员站长
2022/09/01
5670
12.1 使用键盘鼠标监控钩子
本节将介绍如何使用Windows API中的SetWindowsHookEx和RegisterHotKey函数来实现键盘鼠标的监控。这些函数可以用来设置全局钩子,通过对特定热键挂钩实现监控的效果,两者的区别在于SetWindowsHookEx函数可以对所有线程进行监控,包括其他进程中的线程,而RegisterHotKey函数只能对当前线程进行监控。
微软技术分享
2023/10/07
4430
12.1 使用键盘鼠标监控钩子
Wallpaper透视效果的C++实现
Wallpaper的透视图实际上包含了两张图,一张是非透视图,即正常情况下能够被看到的图片,另一张是透视图,即鼠标移到上面才会部分显示的图片。
DearXuan
2022/01/19
1.4K0
用 WPF 写的颜色拾取器
之前都是用别人的颜色拾取器,今天自己用WPF写了一个颜色拾取器小程序 拾取鼠标所在位置的颜色,按键盘上的空格键停止取色 程序下载:MyWPFScreenColorE.rar 程序里面有一个全局的勾子
lpxxn
2018/01/31
1.4K0
用 WPF 写的颜色拾取器
java键盘钩子_java 写的低级鼠标键盘钩子示例
http://java.net/projects/jna/downloads下载 jna.jar 和 platform.jar
全栈程序员站长
2022/08/23
1.1K0
HOOK编程
引用地址:https://eason.blog.csdn.net/article/details/7707821
全栈程序员站长
2022/09/06
8840
HOOK编程
c#键盘钩子全解
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/130999.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/11
8290
c#键盘钩子全解
windows api学习笔记-键盘钩子
DLL项目的头文件 #ifdef KEYHOOKLIB_EXPORT //此宏将在CPP文件中定义 #define KEYHOOKLIB_API __declspec(dllexport) #else #define KEYHOOKLIB_API __declspec(dllimport) #endif #define HM_KEY WM_USER+101 BOOL KEYHOOKLIB_API WINAPI SetKeyHook(BOOL bInstall,DWORD dwThreadId = 0,
liulun
2022/05/09
4770
VC++6.0入门——第7讲 对话框编程(一)
好事文章地址:https://cloud.tencent.com/developer/article/2470499
Arya
2024/11/25
1950
VC++6.0入门——第7讲 对话框编程(一)
c# winform 窗体失去焦点关闭(钩子实现)
main函数里面写 Application.ApplicationExit += Application_ApplicationExit;
冰封一夏
2019/09/10
2.9K0
MFC原理第六讲.消息传递
    通过上一讲我们的消息映射表.我们得知. 消息映射表 会保存父类的MessageMap 以及自己当前的消息结构体数组.
IBinary
2019/05/25
1K0
Hook 技术「建议收藏」
钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。
全栈程序员站长
2022/09/01
6810
相关推荐
锁定屏幕相关知识「建议收藏」
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文