帮助中心
获取牛币
联系我们
关于我们
版权声明
素材牛首页
微博登录
QQ登录
微信扫码登录
注册
登录
新浪微博
QQ登陆
微信登录
热门搜索:
小程序
支付
Java
后台模板
上传
商城模板
jQuery
手机
Thinkphp
微信
Vue.js
首 页
网页特效
整站源码
PHP实例
网站模版
工具箱
常用代码
论坛
游戏源码
资源分享
当前位置:
首页
»
精选常用代码
» 判断鼠标进入元素的位置(上下左右)
判断鼠标进入元素的位置(上下左右)
浏览:1072次
-
评论:1次
-
发布时间:2017-12-20
Html
Css
Js
* { margin:0; padding:0; } body { height:1500px; } .box { margin:20px 20px; } .out { width:200px; height:200px; border:1px solid saddlebrown; float:left; overflow:hidden; } .in { width:200px; height:200px; background:palevioletred; transform-origin:0 0; transform:rotate(90deg); }
var leftTop = Math.atan2(1, -1); var rightTop = Math.atan2(1, 1); var rightBottom = Math.atan2(-1, 1); var leftBottom = Math.atan2(-1, -1); var pi = Math.atan2(0, -1); $('.out').mouseenter(function(e) { clearInterval(timer); var x = e.pageX - ($(this).offset().left + (parseFloat($(this).css('width'), 10) / 2)); var y = $(this).offset().top + (parseFloat($(this).css('height'), 10) / 2) - e.pageY; var now = Math.atan2(y, x); var timer; if (now >= rightTop && now < leftTop) { var i = 0; $(this).children('.in').css({ 'transform-origin': 'left top', 'transform': 'rotate(-90deg)', }) i = -90; var that = this timer = setInterval(function() { i += 2; $(that).children('.in').css('transform', 'rotate(' + i + 'deg)'); if (i == 0) { clearInterval(timer); } }, 1) //console.log('从上进入') } else if (now >= 0 && now < rightTop || now >= rightBottom && now < 0) { var i = 0; $(this).children('.in').css({ 'transform-origin': 'right bottom', 'transform': 'rotate(90deg)', }) i = 90; var that = this timer = setInterval(function() { i -= 2; $(that).children('.in').css('transform', 'rotate(' + i + 'deg)'); if (i == 0) { clearInterval(timer); } }, 1) //console.log('从右进入') } else if (now >= leftBottom && now < rightBottom) { var i = 0; $(this).children('.in').css({ 'transform-origin': 'left bottom', 'transform': 'rotate(90deg)', }) i = 90; var that = this timer = setInterval(function() { i -= 2; $(that).children('.in').css('transform', 'rotate(' + i + 'deg)'); if (i == 0) { clearInterval(timer); } }, 1) //console.log('从下进入') } else { var i = 0; $(this).children('.in').css({ 'transform-origin': 'left bottom', 'transform': 'rotate(-90deg)', }) i = -90; var that = this timer = setInterval(function() { i += 2; $(that).children('.in').css('transform', 'rotate(' + i + 'deg)'); if (i == 0) { clearInterval(timer); } }, 1) //console.log('从左进入') } }) $('.out').mouseleave(function(e) { clearInterval(timer); var x = e.pageX - ($(this).offset().left + (parseFloat($(this).css('width'), 10) / 2)); var y = $(this).offset().top + (parseFloat($(this).css('height'), 10) / 2) - e.pageY; var now = Math.atan2(y, x); var timer; if (now >= leftBottom && now < rightBottom) { //console.log('从下出去') var i = 0; $(this).children('.in').css({ 'transform-origin': 'left bottom', 'transform': 'rotate(0deg)', }) i = 0; var that = this var timer = setInterval(function() { i += 2; $(that).children('.in').css('transform', 'rotate(' + i + 'deg)'); if (i == 90) { clearInterval(timer); } }, 1) } else if (now >= 0 && now < rightTop || now >= rightBottom && now < 0) { var i = 0; $(this).children('.in').css({ 'transform-origin': 'right bottom', 'transform': 'rotate(0deg)', }) i = 0; var that = this var timer = setInterval(function() { i += 2; $(that).children('.in').css('transform', 'rotate(' + i + 'deg)'); if (i == 90) { clearInterval(timer); } }, 1) //console.log('从右出去') } else if (now >= rightTop && now < leftTop) { var i = 0; $(this).children('.in').css({ 'transform-origin': 'left top', 'transform': 'rotate(0deg)', }) i = 0; var that = this var timer = setInterval(function() { i -= 2; $(that).children('.in').css('transform', 'rotate(' + i + 'deg)'); if (i == -90) { clearInterval(timer); } }, 1) //console.log('从上出去') } else { var i = 0; $(this).children('.in').css({ 'transform-origin': 'left bottom', 'transform': 'rotate(0deg)', }) i = 0; var that = this var timer = setInterval(function() { i -= 2; $(that).children('.in').css('transform', 'rotate(' + i + 'deg)'); if (i == -90) { clearInterval(timer); } }, 1) } })
↑上面代码改变,会自动显示代码结果
jQuery调用版本:
2.1.4
<!doctype html><html><head><meta charset="utf-8"><title>判断鼠标进入元素的位置(上下左右)-www.sucainiu.com</title><script src="https://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script><style>
</style></head><body>
<script>
</script>
</body></html>
立即下载
收藏
积分说明:注册即送10牛币,每日签到可获得5牛币,成为VIP会员可永久免牛币下载!
充值积分
充值会员
更多说明»
代码描述:原生js 鼠标悬停方向感知
利用Math.atan2()函数获得方块四个顶点弧度,再将鼠标进入的位置弧度与之比较,即可得知鼠标是从哪个方位进入元素的
jQuery append方法实例演示
JS手机号码校验
讨论这个常用代码(1)
回答他人问题或分享心得会奖励牛币
Lv10 CTO
华***n
2017年12月21日
学习了感谢分享
回复
文明上网,理性发言! 😉 阿里云幸运券,
戳我领取
发表评论
提交回复
我的积分余额:
0
已下载次数:
1072
所需牛币:
5
开始下载
牛币获取:
签到、评论、充值
» 在线充值
(10牛币=1元)
成为VIP可永久免积分下载全部常用代码
» 查看详情
VIP
客服
签到
充值