js判断鼠标移入移出方向的方法


Posted in Javascript onJune 24, 2020

PC端鼠标移入移出的效果很好,这里就给出判断鼠标移入移出的方法,有空再发出带效果的文章,不过授之以鱼不如受之以渔,有了个这个方法,效果不还是so easy吗?

代码:

<!DOCTYPE html>
<html lang="zh">
 <head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title></title>
 <style type="text/css">
 * {
 padding: 0;
 margin: 0;
 }
 
 .ul-box {
 width: 345px;
 margin: 20px auto;
 background-color: #f5f5f5;
 overflow: auto;
 }
 
 .li-item {
 width: 100%;
 height: 134px;
 margin-bottom: 10px;
 border-radius: 4px;
 }
 
 .li-item1 {
 background: linear-gradient(90deg, #7f90e3 0%, #8b9bff 100%);
 }
 </style>
 </head>
 <body>
 <ul id="ulBox" class="ul-box">
 <li class="li-item li-item1" onmouseleave="derEvent(event, 'leave')" onmouseenter="derEvent(event, 'enter')"></li>
 </ul>
 </body>
 <script type="text/javascript">
 /**
 * @param {Object} event 当前事件源信息
 * @return {Number} d 方向 top 0 right 1 bottom 2 left 3
 */
 function getDer(event) {
 let ele = event.target
 var d;
 var w = ele.offsetWidth,
 h = ele.offsetHeight,
 l = ele.offsetLeft,
 t = ele.offsetTop,
 x = (event.clientX - l - w / 2) * (w > h ? (h / w) : 1),
 y = (event.clientY - t - h / 2) * (h > w ? (w / h) : 1);
 d = (Math.round((Math.atan2(y, x) * (180 / Math.PI) + 180) / 90) + 3) % 4;
 return d;
 // top 0 right 1 bottom 2 left 3
 }
 /**
 * @param {Object} event 事件源信息
 * @param {Object} type 类型 leave 离开 色 enter 进入
 */
 function derEvent(event, type) {
 let d = getDer(event)
 let txt = ''
 switch (d) {
 case 0:
  txt = '上'
  break;
 case 1:
  txt = '右'
  break;
 case 2:
  txt = '下'
  break;
 case 3:
  txt = '左'
  break;
 default:
  break;
 }
 if (type === 'leave') {
 console.log(txt, '离开')
 } else {
 console.log(txt, '进入')
 }
 }
 </script>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery模板插件 jquery.tmpl 动态ajax扩展
Nov 10 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
Mar 18 Javascript
JS实现的省份级联实例代码
Jun 24 Javascript
jQuery中data()方法用法实例
Dec 27 Javascript
面向切面编程(AOP)的理解
May 01 Javascript
javascript实现youku的视频代码自适应宽度
May 25 Javascript
JavaScript实现Java中Map容器的方法
Oct 09 Javascript
AngularJS中的按需加载ocLazyLoad示例
Jan 11 Javascript
详解Angular 自定义结构指令
Jun 21 Javascript
详解如何用模块化的方式写vuejs
Dec 16 Javascript
vuex进阶知识点巩固
May 20 Javascript
微信小程序以ssm做后台开发的实现示例
Apr 08 Javascript
JS判断数组是否包含某元素实现方法汇总
Jun 24 #Javascript
JS script脚本中async和defer区别详解
Jun 24 #Javascript
javascript实现前端分页效果
Jun 24 #Javascript
JS实现多选框的操作
Jun 24 #Javascript
微信小程序实现发微博功能的示例代码
Jun 24 #Javascript
JavaScript实现答题评分功能页面
Jun 24 #Javascript
JS实现电脑虚拟键盘打字测试
Jun 24 #Javascript
You might like
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
laravel 5.4中实现无限级分类的方法示例
2017/07/27 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
JavaScript语法着色引擎(demo及打包文件下载)
2007/06/13 Javascript
jQuery的选择器中的通配符使用介绍
2014/03/20 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
2014/05/14 Javascript
基于javascript的COOkie的操作实现只能点一次
2014/12/26 Javascript
JQuery调用绑定click事件的3种写法
2015/03/28 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
使用jquery给新生的th绑定hover事件的实例
2017/02/10 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
vant中的toast轻提示实现代码
2020/11/04 Javascript
python常见数制转换实例分析
2015/05/09 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
听歌识曲--用python实现一个音乐检索器的功能
2016/11/15 Python
Python如何发布程序的详细教程
2018/10/09 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
2019/01/05 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
2019/04/11 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
浅析Python 引号、注释、字符串
2019/07/25 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
澳大利亚优惠网站:Deals.com.au
2019/07/02 全球购物
个人自我评价分享
2013/12/20 职场文书
干部现实表现材料
2014/02/13 职场文书
最经典的商业地产项目广告词
2014/03/13 职场文书
交通事故协议书
2014/04/15 职场文书
教师党员先进性教育自我剖析材料思想汇报
2014/09/24 职场文书
2014年学校总务处工作总结
2014/12/08 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
无工作证明怎么写
2015/06/15 职场文书
健康教育主题班会
2015/08/14 职场文书
2016年幼儿园教研活动总结
2016/04/05 职场文书
分享:关于学习的励志名言赏析
2019/08/16 职场文书
拥有这5个特征人,“命”都不会太差
2019/08/16 职场文书
python实现自定义日志的具体方法
2021/05/28 Python
使用scrapy实现增量式爬取方式
2022/06/21 Python