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 FormatNumber函数实现方法
Dec 30 Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
Aug 27 Javascript
JavaScript实现的一个计算数字步数的算法分享
Dec 06 Javascript
Webwork 实现文件上传下载代码详解
Feb 02 Javascript
浅谈JS原型对象和原型链
Mar 02 Javascript
bootstarp modal框居中显示的实现代码
Feb 18 Javascript
Angular JS 生成动态二维码的方法
Feb 23 Javascript
vue实现nav导航栏的方法
Dec 13 Javascript
ElementUI Tag组件实现多标签生成的方法示例
Jul 08 Javascript
layui form.render('select', 'test2') 更新渲染的方法
Sep 27 Javascript
基于vue+element实现全局loading过程详解
Jul 10 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
Jul 19 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无法访问远程mysql的问题分析及解决
2013/05/16 PHP
php生成excel文件的简单方法
2014/02/08 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
2014/11/04 PHP
替换php字符串中的单引号为双引号的方法
2017/02/16 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
Smarty模板语法详解
2019/07/20 PHP
EasyUI中datagrid在ie下reload失败解决方案
2015/03/09 Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
2015/12/02 Javascript
基于javascript实现简单计算器功能
2016/01/03 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
js获取指定字符前/后的字符串简单实例
2016/10/27 Javascript
nodeJs链接Mysql做增删改查的简单操作
2017/02/04 NodeJs
jQuery.form.js的使用详解
2017/06/14 jQuery
JS实现获取word文档内容并输出显示到html页面示例
2018/06/23 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
在小程序Canvas中使用measureText的方法示例
2018/10/19 Javascript
vue webpack重写cookie路径的方法
2019/07/10 Javascript
Vuex,iView UI面包屑导航使用扩展详解
2019/11/04 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
详解nginx配置vue h5 history去除#号
2020/11/09 Javascript
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
Python实现的多线程同步与互斥锁功能示例
2017/11/30 Python
python实现黑客字幕雨效果
2018/06/21 Python
opencv-python 提取sift特征并匹配的实例
2019/12/09 Python
python怎么提高计算速度
2020/06/11 Python
python为什么会环境变量设置不成功
2020/06/23 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
深入理解Python变量的数据类型和存储
2021/02/01 Python
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
Pamela Love官网:纽约设计师Pamela Love的精美、时尚和穿孔珠宝
2020/10/19 全球购物
简单而又朴实的个人求职信分享
2013/12/12 职场文书
音乐教师个人总结
2015/02/06 职场文书
童年读书笔记
2015/06/26 职场文书
少先队大队委竞选口号
2015/12/25 职场文书
怎样写好工作计划
2019/04/10 职场文书
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL