基于CSS3和jQuery实现跟随鼠标方位的Hover特效


Posted in Javascript onJuly 25, 2016

今天我们来学习如何通过CSS3的特性和jQuery来创建一个感知鼠标滑动方向的hover效果。当鼠标滑进的时候,遮罩层会从上次鼠标滑出的方向滑入,当鼠标滑出的时候,遮罩层会跟随鼠标,从鼠标滑出的方向滑出。这是一个十分有趣的效果。
我们使用无序列表来组织缩略图和描述遮罩层:

<ul id="da-thumbs" class="da-thumbs">
<li>
<a href="http://dribbble.com/shots/502538-Natalie-Justin-Cleaning">
<img src="images/7.jpg" />
<div><span>Natalie & Justin Cleaning by Justin Younger</span></div>
</a>
</li>
<li>
<!-- ... -->
</li>
<!-- ... -->
</ul>

这些列表项将会向左浮动,并且相对定位,因为我们绝对定位描述遮罩层:

.da-thumbs li {
float: left;
margin: 5px;
background: #fff;
padding: 8px;
position: relative;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.da-thumbs li a,
.da-thumbs li a img {
display: block;
position: relative;
}
.da-thumbs li a {
overflow: hidden;
}
.da-thumbs li a div {
position: absolute;
background: rgba(75,75,75,0.7);
width: 100%;
height: 100%;
}

接下来我们将这样做:根据鼠标进入的位置,我们将“from”样式应用给遮罩层,它设置了遮罩层的初始位置。然后我们将使用过渡并将添加最终状态的样式。这样遮罩层就滑入了。当我们离开元素时,我们再次应用“from”样式给遮罩层(尽管现在实际上是滑出)并去除之前的最终状态样式。

嗯,以下就是这个小插件的核心:

this.$el.on( 'mouseenter.hoverdir, mouseleave.hoverdir', function( event ) {
var $el = $( this ),
$hoverElem = $el.find( 'div' ),
direction = self._getDir( $el, { x : event.pageX, y : event.pageY } ),
styleCSS = self._getStyle( direction );
if( event.type === 'mouseenter' ) {
$hoverElem.hide().css( styleCSS.from );
clearTimeout( self.tmhover );
self.tmhover = setTimeout( function() {
$hoverElem.show( 0, function() {
var $el = $( this );
if( self.support ) {
$el.css( 'transition', self.transitionProp );
}
self._applyAnimation( $el, styleCSS.to, self.options.speed );
} );
}, self.options.hoverDelay );
}
else {
if( self.support ) {
$hoverElem.css( 'transition', self.transitionProp );
}
clearTimeout( self.tmhover );
self._applyAnimation( $hoverElem, styleCSS.from, self.options.speed );
}
} );

我们主要是给列表项绑定‘mouseenter'和‘mouseleave'事件,通过_getDir函数我们获得鼠标滑进或滑出的方向(想象检测区域是个被分成四个三角形的矩形)。

你将会看到,在第二个demo中,我们添加了延迟,这样当鼠标从一个角落移到另一个角落的时候不会发生太多的动画。
我希望你可以喜欢这个小特效并觉得很有用!

如果浏览器不支持CSS过渡将会使用jQuery动画。

原地址和插件下载

以上所述是小编给大家介绍的基于CSS3和jQuery实现跟随鼠标方位的Hover特效,希望对大家有所帮助!

Javascript 相关文章推荐
firefo xml 读写实现js代码
Jun 11 Javascript
EasySlider 基于jQuery功能强大简单易用的滑动门插件
Jun 11 Javascript
js showModalDialog弹出窗口实例详解
Jan 07 Javascript
qq悬浮代码(兼容各个浏览器)
Jan 29 Javascript
深入理解JavaScript中的箭头函数
Jul 28 Javascript
浅析Javascript中bind()方法的使用与实现
May 30 Javascript
AngularJS ng-template寄宿方式用法分析
Nov 07 Javascript
JS解决IOS中拍照图片预览旋转90度BUG的问题
Sep 13 Javascript
详解在vue-cli中使用路由
Sep 25 Javascript
深入理解 TypeScript Reflect Metadata
Dec 12 Javascript
JavaScript写个贪吃蛇小游戏(超详细)
Mar 17 Javascript
使用Vant完成通知栏Notify的提示操作
Nov 11 Javascript
javascript insertAfter()定义与用法示例
Jul 25 #Javascript
jquery之别踩白块游戏的简单实现
Jul 25 #Javascript
JavaScript禁止用户多次提交的两种方法
Jul 24 #Javascript
JavaScript表单焦点自动切换代码
Jul 24 #Javascript
javascript中sort排序实例详解
Jul 24 #Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
Jul 24 #Javascript
关于input全选反选恶心的异常情况
Jul 24 #Javascript
You might like
用缓存实现静态页面的测试
2006/12/06 PHP
php实例分享之mysql数据备份
2014/05/19 PHP
js模仿hover的具体实现代码
2013/12/30 Javascript
JavaScript中的标签语句用法分析
2015/02/10 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
原生JS简单实现ajax的方法示例
2016/11/29 Javascript
js实现图片切换(动画版)
2016/12/25 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
Vue实现动态响应数据变化
2017/04/28 Javascript
js,jq,css多方面实现简易下拉菜单功能
2017/05/13 Javascript
vue实现树形菜单效果
2018/03/19 Javascript
对Vue.js之事件的绑定(v-on: 或者 @ )详解
2018/09/15 Javascript
原生JS实现列表内容自动向上滚动效果
2019/05/22 Javascript
移动端吸顶fixbar的解决方案详解
2019/07/17 Javascript
解决layui table表单提示数据接口请求异常的问题
2019/09/24 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
2020/09/04 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
在Python中编写数据库模块的教程
2015/04/29 Python
python+mongodb数据抓取详细介绍
2017/10/25 Python
Python排序搜索基本算法之希尔排序实例分析
2017/12/09 Python
python爬取网页内容转换为PDF文件
2020/07/28 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
2019/06/26 Python
Pytorch加载部分预训练模型的参数实例
2019/08/18 Python
解决tensorflow打印tensor有省略号的问题
2020/02/04 Python
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
2014/04/03 HTML / CSS
美国在线奢侈品寄售商店:Luxury Garage Sale
2018/08/19 全球购物
介绍一下grep命令的使用
2012/06/28 面试题
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
四风查摆剖析材料
2014/10/10 职场文书
2015年民主生活会发言材料
2014/12/15 职场文书
导师对论文的学术评语
2015/01/04 职场文书
学校实习推荐信
2015/03/27 职场文书
房租涨价通知
2015/04/23 职场文书
身份证丢失证明
2015/06/19 职场文书
2015年国培研修感言
2015/08/01 职场文书
Spring this调用当前类方法无法拦截的示例代码
2022/03/20 Java/Android