(编辑:jimmy 日期: 2024/12/27 浏览:2)
本文介绍了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 "htmlcode"><div id="container"> <img src="/UploadFiles/2021-04-02/bg.jpg">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} }以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。