一款基于jquery的鼠标经过图片列表特效
今天要给大家推荐一款基于jquery的鼠标经过图片列表特效。当鼠标经过列表图片的时候,图片放大,且有一个半透明的遮罩层随之移动。效果图如下:

实现的代码
html代码:
<h1>Direction Aware Hover</h1>
<div class="container cf"> <div class="boxes"><img class="da-image" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/24345/da_image1.jpg"><div class="overlay"></div></div><div class="boxes"><img class="da-image" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/24345/da_image2.jpg"><div class="overlay"></div></div><div class="boxes"><img class="da-image" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/24345/da_image3.jpg"><div class="overlay"></div></div><div class="boxes"><img class="da-image" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/24345/da_image4.jpg"><div class="overlay"></div></div><div class="boxes"><img class="da-image" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/24345/da_image5.jpg"><div class="overlay"></div></div><div class="boxes"><img class="da-image" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/24345/da_image6.jpg"><div class="overlay"></div></div> </div>
css代码:
@import url(http://fonts.googleapis.com/css?family=Roboto+Condensed:300);
h1{
font-family: 'Roboto Condensed', sans-serif;
text-align: center;
}
.cf:before,
.cf:after {
content: " "; /* 1 */
display: table; /* 2 */
} .cf:after {
clear: both;
} /**
* For IE 6/7 only
* Include this rule to trigger hasLayout and contain floats.
*/
.cf {
*zoom:;
} .boxes{
display: block;
width: 30%;
height: 220px;
background: #fe4;
position: relative;
overflow: hidden;
float: left;
margin: 1.5%;
cursor: pointer;
}
.da-image{
min-height: 100%;
width: 100%;
}
.overlay{
display: block;
position: absolute;
width: 100%;
height: 100%;
top: 0%;
left: -100%;
color: #FFF;
background-color: rgba(0,0,0,0.8);
z-index:;
} .container{
width: 1170px;
display: block;
margin: auto;
}
js代码:
//Detect Closest Edge
function closestEdge(x,y,w,h) {
var topEdgeDist = distMetric(x,y,w/2,0);
var bottomEdgeDist = distMetric(x,y,w/2,h);
var leftEdgeDist = distMetric(x,y,0,h/2);
var rightEdgeDist = distMetric(x,y,w,h/2);
var min = Math.min(topEdgeDist,bottomEdgeDist,leftEdgeDist,rightEdgeDist);
switch (min) {
case leftEdgeDist:
return "left";
case rightEdgeDist:
return "right";
case topEdgeDist:
return "top";
case bottomEdgeDist:
return "bottom";
}
} //Distance Formula
function distMetric(x,y,x2,y2) {
var xDiff = x - x2;
var yDiff = y - y2;
return (xDiff * xDiff) + (yDiff * yDiff);
} var boxes = document.querySelectorAll(".boxes"); for(var i = 0; i < boxes.length; i++){ boxes[i].onmouseenter = function(e){
var x = e.pageX - this.offsetLeft;
var y = e.pageY - this.offsetTop;
var edge = closestEdge(x,y,this.clientWidth, this.clientHeight);
var overlay = this.childNodes[1];
var image = this.childNodes[0]; switch(edge){
case "left":
//tween overlay from the left
overlay.style.top = "0%";
overlay.style.left = "-100%";
TweenMax.to(overlay, .5, {left: '0%'});
TweenMax.to(image, .5, {scale: 1.2});
break;
case "right":
overlay.style.top = "0%";
overlay.style.left = "100%";
//tween overlay from the right
TweenMax.to(overlay, .5, {left: '0%'});
TweenMax.to(image, .5, {scale: 1.2});
break;
case "top":
overlay.style.top = "-100%";
overlay.style.left = "0%";
//tween overlay from the right
TweenMax.to(overlay, .5, {top: '0%'});
TweenMax.to(image, .5, {scale: 1.2});
break;
case "bottom":
overlay.style.top = "100%";
overlay.style.left = "0%";
//tween overlay from the right
TweenMax.to(overlay, .5, {top: '0%'});
TweenMax.to(image, .5, {scale: 1.2});
break;
}
}; boxes[i].onmouseleave = function(e){
var x = e.pageX - this.offsetLeft;
var y = e.pageY - this.offsetTop;
var edge = closestEdge(x,y,this.clientWidth, this.clientHeight);
var overlay = this.childNodes[1];
var image = this.childNodes[0]; switch(edge){
case "left":
TweenMax.to(overlay, .5, {left: '-100%'});
TweenMax.to(image, .5, {scale: 1.0});
break;
case "right":
TweenMax.to(overlay, .5, {left: '100%'});
TweenMax.to(image, .5, {scale: 1.0});
break;
case "top":
TweenMax.to(overlay, .5, {top: '-100%'});
TweenMax.to(image, .5, {scale: 1.0});
break;
case "bottom":
TweenMax.to(overlay, .5, {top: '100%'});
TweenMax.to(image, .5, {scale: 1.0});
break;
}
};
}
注:本文爱编程原创文章,转载请注明原文地址:http://www.w2bc.com/Article/10925
一款基于jquery的鼠标经过图片列表特效的更多相关文章
- 一款基于jquery超炫的图片切换特效
今天为给大家介绍一款基于jquery超炫的图片切换特效.由百叶窗飞入显示图片.图片消息的时候也是百叶窗渐行渐远.用于图片展示,效果还是非常好,我们一起看下效果图: 在线预览 源码下载 来看下实现的 ...
- 一款基于jquery和css3的头像恶搞特效
今天给大家分享一款基于jquery和css3的头像恶搞特效.这款实例中,一个头像在画面中跳舞,头像还有可爱的帽子,单击下面的按钮可以为头像切换不同的帽子.效果图如下: 在线预览 源码下载 实现的代 ...
- 10款基于jquery的web前端动画特效
1.jQuery横向手风琴图片切换动画 之前我们为大家分享过很多款基于jQuery和CSS3的手风琴菜单和手风琴焦点图插件,比如CSS3响应式垂直手风琴菜单和jQuery横向手风琴图片展示插件.今天要 ...
- 基于jQuery弹出层图片动画查看代码
分享一款基于jQuery弹出层图片动画查看代码是一款鼠标单击文字或图片内容放大显示且含圆角投影效果.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class=&q ...
- 基于jQuery带标题的图片3D切换焦点图
今天给大家分享一款基于jQuery带标题的图片3D切换焦点图.这款焦点图适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗. 实现的代码. htm ...
- 基于jQuery左右滑动切换图片代码
分享一款基于jQuery左右滑动切换图片代码.这是一款基于jQuery实现的左右滑动切换焦点图代码.效果图如下: 在线预览 源码下载 实现的代码: <div class="v_ou ...
- 基于jquery仿360网站图片选项卡切换代码
今天给大家分享一款基于jquery仿360网站图片选项卡切换代码.这款实例适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预 ...
- 基于jQuery 3D旋转明星人物展示特效
分享一款基于jQuery 3D旋转明星人物展示特效.这是一款来自百度换肤活动的明星旋转展示效果.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class=&quo ...
- 一款基于jquery的手风琴图片展示效果
今天要给大家分享一款基于jquery的手风琴图片展示效果.这款图片的展示效果鼠标经过前是灰色的,当鼠标经过时图片变大且变为彩色.效果图如下: 在线预览 源码下载 实现的代码. html代码: &l ...
随机推荐
- glusterFS分布式存储部署流程
转自:http://bangbangba.blog.51cto.com/3180873/1712061 GlusterFS是一款非常易于使用的分布式文件存储系统,实现了全部标准POSIX接口,并用fu ...
- Intellij IDEA 设置代码着色
从visual studio到Eclipse再到Intllij IDEA,其实每个编译器都有自己的风格,但是就美观上来说,个人觉得还是visual studio的代码着色比较美观,exlipse次之, ...
- 搭建Hexo博客并部署到Github
参考: http://www.jianshu.com/p/a67792d93682 http://jingyan.baidu.com/article/d8072ac47aca0fec95cefd2d. ...
- ssh之为什么要放弃ssh?
本文经转载, 源出处不详.https://www.cnblogs.com/hackxiyu/p/6849085.html 最近听一些朋友说,招聘面试的很多人简历都差不多,大部分人的简历上面都写了熟悉s ...
- android自带theme
在网上搜了一下,android自带theme如下: •android:theme="@android:style/Theme.Dialog" 将一个Activity显示为对话框 ...
- Linux内核(6) - 模块机制与“Hello World!
有一种感动,叫内牛满面,有一种机制,叫模块机制.显然,这种模块机制给那些Linux的发烧友们带来了方便,因为模块机制意味着人们可以把庞大的Linux内核划分为许许多多个小的模块.对于编写设备驱动程序的 ...
- 使用Xcode 查看objective-C的汇编代码
Xcode自带将某一个源文件转化成汇编的功能.如图: 汇编的部分代码例如以下: # Assembly output for assemble.c # Generated at 2:29:34 下午 o ...
- angular.js ng-repeat动态插入删除dom节点
既然上面提到 angular.js 下无需用户直接操作dom ,而是在编译间断 dom 与 控制层model 实现了双向绑定,一方做出改变,另一方就会立即改变,那问题来了,我想插入一个文本框和按钮,并 ...
- Java简单验证码的识别
1. 需求 因为项目需要,需要多次登录某网站抓取信息.所以学习了验证码的一些小知识.文章参考http://blog.csdn.net/problc/article/details/5794460的部分 ...
- ios 开源免费接口
ios 开源免费接口 国家气象局提供的天气预报接口 接口地址: http://www.weather.com.cn/data/sk/101010100.html http://www.weather. ...