这篇文章主要介绍了JavaScript检测鼠标移动方向的方法,涉及javascript鼠标操作的相关技巧,需要的朋友可以参考下。
判断鼠标移入方向的功能函数

function getDir(ev, ele) {var l = ele.getBoundingClientRect().left;var t = ele.getBoundingClientRect().top;var w = ele.getBoundingClientRect().width;var h = ele.getBoundingClientRect().height;var x = (ev.clientX - l - w / 2) * (w > h ? (h / w) : 1);var y = (ev.clientY - t - h / 2) * (h > w ? (w / h) : 1);var deg = Math.atan2(y, x) / (Math.PI / 180);var d = (Math.round((deg + 180) / 90) + 3) % 4;return d;// d的值{上:0,右:1,下:2,左:3}}

整体代码:
html:

  <div id="container"><img src="./bg.jpg" alt=""><p class="ps">故事成功地将原本隐藏在黑暗中,用世界上最强大的毅力和最艰辛的努力去做最密不可宣和隐讳残酷的事情的忍者,描绘成了太阳下最值得骄傲最光明无限的职业。在岸本齐史笔下的忍者世界中,每一位年轻的忍者都在开拓着属于自己的忍道。</p></div>

CSS:

*{margin: 0;padding: 0;
}#container{width: 400px;height: 200px;position: relative;margin-top: 100px;margin-left: 200px;overflow: hidden;}
#container img{width: 100%;height: 100%;transition: 0.5s;
}
#container p{width: 100%;height: 100%;padding: 10px;box-sizing: border-box;position: absolute;left: 0;/* top: 0; */background: rgba(0, 0, 0, .7);color: #ccc;font-size: 14px;line-height: 24px;}
#container:hover img{transform: scale(1.1);
}

JS:

 window.onload = function () {var box = document.getElementById('container');var ps = document.getElementsByClassName('ps');var pos=[{left:0,top:'-100%'},{left:'100%',top:0},{left:0,top:'100%'},{left:'-100%',top:0}]box.onmouseenter = function(ev){var dir = getDir(ev,this);ps[0].style.transition='';ps[0].style.left=pos[dir].left;ps[0].style.top=pos[dir].top;setTimeout(function(){ps[0].style.transition='.3s';ps[0].style.left=0;ps[0].style.top=0;},1000/60)}box.onmouseleave = function(ev){var dir = getDir(ev,this);setTimeout(function(){ps[0].style.transition='';ps[0].style.left=pos[dir].left;ps[0].style.top=pos[dir].top;},100)}}function getDir(ev, ele) {var l = ele.getBoundingClientRect().left;var t = ele.getBoundingClientRect().top;var w = ele.getBoundingClientRect().width;var h = ele.getBoundingClientRect().height;var x = (ev.clientX - l - w / 2) * (w > h ? (h / w) : 1);var y = (ev.clientY - t - h / 2) * (h > w ? (w / h) : 1);var deg = Math.atan2(y, x) / (Math.PI / 180);var d = (Math.round((deg + 180) / 90) + 3) % 4;return d;// d的值{上:0,右:1,下:2,左:3}}

Javascript鼠标移入方向感知相关推荐

  1. 判断鼠标移入移出方向(二)-----获取鼠标移入方向

    第二部分内容,这里也列出思路,方便承接第一部分. 思路 1:给li绑定鼠标移入移出事件 2:获取鼠标移入的位置(有用),例:(x,y) 3:获取图片距离浏览器的位置(有用),top,left,heig ...

  2. J10:JavaScript鼠标移入移出

    1. JavaScript的onmouseover和onmouseout <!doctype html> <html> <head> <meta charse ...

  3. javascript 鼠标移入移出改变图片透明度

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>鼠标移 ...

  4. JavaScript 鼠标移入移出状态(onmouseover、onmouseout)

    1.设计一个div 用于演示: <head><meta charset="UTF-8"><title>Title</title>&l ...

  5. JavaScript——鼠标移入移出事件

    onmouseenter / onmouseleave 和 onmouseover / onmouseout的关系 onmouseenter 类似 mouseover,它们两者之间的差别是 mouse ...

  6. 双显示器扩展显示自定义鼠标移入方向

    一.打开显示器设置 win+p键,选择下面的 "更多显示器设置" 二.拖动显示器位置 拖成下图这样,点击确认: 三.完毕

  7. Jquery的鼠标移入移出事件

    Jquery的鼠标事件 下面的是我根据https://www.w3school.com.cn/jquery/event_mouseout.asp,然后自己写的一个小总结的代码. <!DOCTYP ...

  8. python点击弹出悬浮框_“鼠标移入显示悬浮框”特效【转】

    1.效果说明 在效果当中,当用户将鼠标移入一个块时,会从鼠标的移入方向滑入一个悬浮块,悬浮块会随着鼠标移出当前块,且滑出方向遵循鼠标的移出方向 2.实现原理分析 1.结构分析 由于悬浮层有可能从上下左 ...

  9. java图形界面颜色随机变换,JavaScript实现鼠标移入随机变换颜色

    大家好! 今天分享一个在 JavaScript中,实现一个鼠标移入可以随机变换颜色. /* 这里定义一下div(块元素)已下span 标签的宽.高.边框线以及边框线的颜色*/ span{ displa ...

最新文章

  1. 美通信与动力公司向WIN-T军事通信计划提供支持
  2. 怎样定义最小 可遗传神经网络
  3. java线程池_Java多线程并发:线程基本方法+线程池原理+阻塞队列原理技术分享...
  4. ansible file模块_Ansible: 检测文件是否存在的逻辑
  5. 随笔--互联网进化论
  6. react学习(22)---需要export
  7. Centos 6.5(64bit)上安装Vertica single node
  8. winform中openfiledialog过滤压缩文件格式_5种最佳摄影师图像文件格式
  9. Selenium2+python自动化28-table定位
  10. LD3320的嵌入式语音识别系统的应用
  11. Win7系统中unity web player是什么程序
  12. qq for android 4.6能视频吗,安卓qq4.6使用评测
  13. js继承的几种方式,圣杯模式
  14. 网易开源分布式存储系统 Curve,性能彪悍
  15. 海豚php框架漏洞,代码审计 - dolphin.pro cms SQL注入漏洞,Bypass过滤规则
  16. MFC封装的base64编码解码函数
  17. 傻瓜式部署教程2:docker搭建oracle11g数据库
  18. ARKit之路-LiDAR传感器(一)
  19. STM32F4-Discovery
  20. 普渡大学计算机科学最新消息,普渡大学计算机系统硕士排名,真心小心考察

热门文章

  1. 服务器消息823 级别24,请教 服务器: 消息 823,级别 24,状态 2,行 1 连接中的错误...
  2. 关于git push origin master 提交报错
  3. 2 190.00 php,JB-QGZ2L-FW19000火灾报警控制器(联动型)
  4. SQL的CTE递归查询
  5. HCIP华为认证网络工程师多久能够考过呢
  6. 个人整理的原生js图片轮播
  7. 5G时代的新商业版图
  8. 趣图:求程序猿粑粑此时的心理阴影面积…… ​​​​
  9. 优秀架构师必须掌握的几种架构思维
  10. 鹏业云计价i20(西藏)清标功能