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 相关文章推荐
js实现的网页颜色代码表全集
Jul 17 Javascript
分享一个自己写的table表格排序js插件(高效简洁)
Oct 29 Javascript
js根据日期判断星座的示例代码
Jan 23 Javascript
Jquery validation remote 验证的缓存问题解决方法
Mar 25 Javascript
简介JavaScript中search()方法的使用
Jun 06 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
Aug 21 Javascript
JS搜狐面试题分析
Dec 16 Javascript
微信小程序 http请求的session管理
Jun 07 Javascript
JS身份证信息验证正则表达式
Jun 12 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
Jul 18 jQuery
vue项目部署到Apache服务器中遇到的问题解决
Aug 24 Javascript
小程序关于请求同步的总结
May 05 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 获取完整url地址
2008/12/20 PHP
PHP XML操作的各种方法解析(比较详细)
2010/06/17 PHP
实例说明js脚本语言和php脚本语言的区别
2019/04/04 PHP
createElement动态创建HTML对象脚本代码
2008/11/24 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
JavaScript Sort 的一个错误用法示例
2015/03/20 Javascript
基于jquery实现表格无刷新分页
2016/01/07 Javascript
jQuery中DOM节点删除之empty与remove
2017/01/20 Javascript
React Native仿美团下拉菜单的实例代码
2017/08/08 Javascript
Three.js利用顶点绘制立方体的方法详解
2017/09/27 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
说说如何在Vue.js中实现数字输入组件的方法
2019/01/08 Javascript
微信小程序之onLaunch与onload异步问题详解
2019/03/28 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
Python中list列表的一些进阶使用方法介绍
2015/08/15 Python
对python requests的content和text方法的区别详解
2018/10/11 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
由面试题加深对Django的认识理解
2019/07/19 Python
python爬虫刷访问量 2019 7月
2019/08/01 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
HTML5图片预览实例分享
2014/06/04 HTML / CSS
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
诺心蛋糕官网:LE CAKE
2018/08/25 全球购物
经典优秀个人求职自荐信格式
2013/09/25 职场文书
小学毕业典礼主持词
2014/03/27 职场文书
贷款担保申请书
2014/05/20 职场文书
计算机求职信
2014/07/02 职场文书
标准版离职证明书
2014/09/12 职场文书
教师学习三严三实心得体会
2014/10/13 职场文书
民间借贷借条范本
2015/05/25 职场文书
教师节校长致辞
2015/07/31 职场文书
成人成长感言如何写?
2019/08/16 职场文书
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android
CSS 鼠标选中文字后改变背景色的实现代码
2023/05/21 HTML / CSS