帮助中心
获取牛币
联系我们
关于我们
版权声明
素材牛首页
微博登录
QQ登录
微信扫码登录
注册
登录
新浪微博
QQ登陆
微信登录
热门搜索:
小程序
支付
Java
后台模板
上传
商城模板
jQuery
手机
Thinkphp
微信
Vue.js
首 页
网页特效
整站源码
PHP实例
网站模版
工具箱
常用代码
论坛
游戏源码
资源分享
当前位置:
首页
»
精选常用代码
» 判断鼠标移入方向的Hover动画效果
判断鼠标移入方向的Hover动画效果
浏览:1020次
-
评论:3次
-
发布时间:2018-11-27
Html
Css
Js
* { margin:0; padding:0; list-style:none; } .container { margin:0 auto; } .clearfix::before,.clearfix::after { content:"."; height:0; line-height:0; display:block; visibility:hidden; clear:both; } .clearfix::after { clear:both; } .clearfix { *zoom:1; /*IE/7/6 */ } .wrap { margin-top:20px; width:680px; } .wrap ul { padding:10px; } .wrap ul li { position:relative; float:left; width:200px; height:200px; z-index:1; margin:10px; overflow:hidden; } .wrap ul li div { position:absolute; top:0px; left:0px; width:200px; z-index:-1; height:200px; transition:transform 0.3s; transform-origin:left bottom; transform:rotateZ(-90deg); } .wrap ul img { width:100%; height:100%; } .wrap ul li div.back_left { transform:rotateZ(0deg); z-index:2; } .wrap ul li div.back_right { transform-origin:right top; transform:rotateZ(0deg); z-index:2; } .wrap ul li div.back_top { transform-origin:left top; transform:rotateZ(0deg); z-index:2; } .wrap ul li div.back_bottom { transform-origin:right bottom; transform:rotateZ(0deg); z-index:2; }
var wrap = document.getElementsByClassName('wrap')[0]; var oUl = wrap.getElementsByTagName('ul')[0]; var aLi = oUl.getElementsByTagName('li'); var newAli = Array.prototype.slice.call(aLi); function getPage(e) { var pageX = e.pageX || e.clientX + getScroll().scrollLeft; var pageY = e.pageY || e.clientY + getScroll().scrollTop; return { pageX: pageX, pageY: pageY } }; for (var i = 0; i < aLi.length; i++) { aLi[i].onmouseenter = direction; } function direction(e) { e = e || window.event; var x; var y; // 鼠标位置是否小于当前li的一半,如果小于 用鼠标位置减去li的位置,如果不小于,用鼠标位置减去li位置再减去li的大小 // 当鼠标经过li时,x轴y轴必有大小,最小的值就是鼠标移入的方向 x = Math.abs(getPage(e).pageX - this.offsetLeft) > this.offsetWidth / 2 ? getPage(e).pageX - this.offsetLeft - this.offsetWidth : getPage(e).pageX - this.offsetLeft; y = Math.abs(getPage(e).pageY - this.offsetTop) > this.offsetHeight / 2 ? getPage(e).pageY - this.offsetTop - this.offsetHeight : getPage(e).pageY - this.offsetTop; var oDiv = this.getElementsByTagName('div')[0]; // 如果鼠标x轴位置减去li的位置小于li宽度的一半,证明鼠标位置在li的左侧,此时比较x与y的大小,小的就是鼠标移入的方向 if (Math.abs(getPage(e).pageX - this.offsetLeft) < this.offsetWidth / 2 && Math.abs(x) <= Math.abs(y)) { oDiv.classList.add('back_left'); } // 如果鼠标x轴位置减去li位置大于li宽度的一半,证明鼠标在li的右侧,此时比较x与y的大小,小的就是鼠标移入的方向 if (Math.abs(getPage(e).pageX - this.offsetLeft) > this.offsetWidth / 2 && Math.abs(x) <= Math.abs(y)) { oDiv.classList.add('back_right'); } // 如果鼠标y轴位置减去li的位置大于li高度的一半,证明鼠标在li的下方,此时比较x与y的大小,小的就是鼠标移入的方向 if (Math.abs(getPage(e).pageY - this.offsetTop) > this.offsetHeight / 2 && Math.abs(x) >= Math.abs(y)) { oDiv.classList.add('back_bottom'); } // 如果鼠标y轴位置减去li的位置小于li高度的一半,证明鼠标在li的上方,此时比较x与y的大小,小的就是鼠标移入的方向 if (Math.abs(getPage(e).pageY - this.offsetTop) < this.offsetHeight / 2 && Math.abs(x) >= Math.abs(y)) { oDiv.classList.add('back_top'); } this.onmouseleave = function() { oDiv.className = 'back'; } }
↑上面代码改变,会自动显示代码结果
jQuery调用版本:
1.2.3
<!doctype html><html><head><meta charset="utf-8"><title>判断鼠标移入方向的Hover动画效果-www.sucainiu.com</title><script src="https://libs.baidu.com/jquery/1.2.3/jquery.min.js"></script><style>
</style></head><body>
<script>
</script>
</body></html>
立即下载
收藏
积分说明:注册即送10牛币,每日签到可获得5牛币,成为VIP会员可永久免牛币下载!
充值积分
充值会员
更多说明»
代码描述:根据鼠标移入方向,进行相应的转变
将一个图片分为四份,确定鼠标在那个方位移入,判断其移入方向为其添加相应的类名,兼容老ie,等主流浏览器,代码中有详细注释
js导出excel文件效果
简单实用的弹窗提示效果
讨论这个常用代码(3)
回答他人问题或分享心得会奖励牛币
Lv1 新人
wa***ab
2018年11月27日
还好了
回复
Lv4 码徒
古***场
2019年06月29日
厉害
回复
Lv7 码师
qq***43
2019年12月25日
厉害了,看着真炫酷
回复
文明上网,理性发言! 😉 阿里云幸运券,
戳我领取
发表评论
提交回复
我的积分余额:
0
已下载次数:
1020
所需牛币:
5
开始下载
牛币获取:
签到、评论、充值
» 在线充值
(10牛币=1元)
成为VIP可永久免积分下载全部常用代码
» 查看详情
VIP
客服
签到
充值