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中的eval函数
Nov 02 Javascript
jquery学习笔记二 实现可编辑的表格
Apr 09 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
Sep 01 Javascript
JavaScript中的this关键字使用详解
Aug 14 Javascript
jQuery采用连缀写法实现的折叠菜单效果
Sep 18 Javascript
Javascript之Number对象介绍
Jun 07 Javascript
javascript内存分配原理实例分析
Apr 10 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
May 11 Javascript
JS判断两个数组或对象是否相同的方法示例
Feb 28 Javascript
在vue-cli 3中给stylus、sass样式传入共享的全局变量
Aug 12 Javascript
微信小程序实现左滑删除效果
Nov 18 Javascript
vue实现列表垂直无缝滚动
Apr 08 Vue.js
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中判断变量为空的几种方法小结
2013/11/12 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
php实现二进制和文本相互转换的方法
2015/04/18 PHP
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
nodejs实用示例 缩址还原
2010/12/28 NodeJs
javascript自适应宽度的瀑布流实现思路
2013/02/20 Javascript
js中如何把字符串转化为对象、数组示例代码
2013/07/17 Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
2015/08/03 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
2017/03/21 Javascript
jquery+css实现简单的图片轮播效果
2017/08/07 jQuery
Node.js Express安装与使用教程
2018/05/11 Javascript
微信小程序实现随机验证码功能
2018/12/20 Javascript
JS实现数据动态渲染的竖向步骤条
2020/06/24 Javascript
[37:23]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第二局
2016/03/04 DOTA
浅析Python编写函数装饰器
2016/03/18 Python
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
2016/07/04 Python
scrapy爬虫实例分享
2017/12/28 Python
python操作excel的方法
2018/08/16 Python
面向初学者的Python编辑器Mu
2018/10/08 Python
使用python+whoosh实现全文检索
2019/12/09 Python
pandas中read_csv的缺失值处理方式
2019/12/19 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
英国香水店:The Perfume Shop
2017/03/27 全球购物
Ruby如何创建一个线程
2013/03/10 面试题
简历上的自我评价
2014/02/03 职场文书
运动会跳远广播稿
2014/02/04 职场文书
暑期社会实践方案
2014/02/05 职场文书
开学季活动策划方案
2014/02/28 职场文书
美容院营销方案
2014/03/05 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
2015年领导班子工作总结
2015/05/23 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
javascript拖曳互换div的位置实现示例
2021/06/28 Javascript
CSS基础详解
2021/10/16 HTML / CSS