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 相关文章推荐
javascript中的float运算精度实例分析
Aug 21 Javascript
jQuery1.3.2 升级到jQuery1.4.4需要修改的地方
Jan 06 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
Jan 09 Javascript
Bootstrap零基础入门教程(二)
Jul 18 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
Aug 13 Javascript
AngularJs Dependency Injection(DI,依赖注入)
Sep 02 Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
Oct 27 Javascript
jQuery实现鼠标跟随效果
Feb 20 Javascript
vue权限路由实现的方法示例总结
Jul 29 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
Sep 14 Javascript
jstree中的checkbox默认选中和隐藏示例代码
Dec 29 Javascript
JavaScript的function函数详细介绍
Nov 20 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标签云的实现代码
2012/10/10 PHP
php mysql获取表字段名称和字段信息的三种方法
2016/11/13 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
地址栏上的一段语句,改变页面的风格。(教程)
2008/04/02 Javascript
Mootools 1.2教程 Tooltips
2009/09/15 Javascript
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
ASP.NET jQuery 实例6 (实现CheckBoxList成员全选或全取消)
2012/01/13 Javascript
js setTimeout()函数介绍及应用以倒计时为例
2013/12/12 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
JavaScript File分段上传
2016/03/10 Javascript
全面解析Bootstrap中transition、affix的使用方法
2016/05/30 Javascript
浅谈bootstrap源码分析之tab(选项卡)
2016/06/06 Javascript
AngularJS中的表单简单入门
2016/07/28 Javascript
IntersectionObserver API 详解篇
2016/12/11 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
2017/01/08 Javascript
easyui下拉框动态级联加载的示例代码
2017/11/29 Javascript
基于Vue2-Calendar改进的日历组件(含中文使用说明)
2019/04/14 Javascript
小程序实现列表展开收起效果
2020/07/29 Javascript
vue 解决addRoutes多次添加路由重复的操作
2020/08/04 Javascript
javascript实现打砖块小游戏(附完整源码)
2020/09/18 Javascript
js实现限定范围拖拽的示例
2020/10/26 Javascript
python 实现归并排序算法
2012/06/05 Python
详解python上传文件和字符到PHP服务器
2017/11/24 Python
Python文本特征抽取与向量化算法学习
2017/12/22 Python
python 平衡二叉树实现代码示例
2018/07/07 Python
python找出完数的方法
2018/11/12 Python
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
FLIR美国官网:热成像, 夜视和红外摄像系统
2018/07/13 全球购物
法国二手MacBook销售网站:Okamac
2019/03/18 全球购物
个人借款担保书
2014/04/02 职场文书
任命书怎么写
2014/06/04 职场文书
整改报告格式
2014/11/06 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
工作汇报材料难写?方法都在这里了!
2019/07/01 职场文书
我家女友可不止可爱呢 公开OP主题曲无字幕动画MV
2022/04/11 日漫
python创建字典及相关管理操作
2022/04/13 Python