一款基于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 ...
随机推荐
- 每天写点shell脚本 (持续更新)
1.显示系统信息脚本 #!/bin/bash #A system information gathering script #Command UNAME="uname -a" pr ...
- CSS3+JS 实现的便签应用
概述 利用HTML5新增的 locationStorage 实现的便签应用,没有使用 JQuery,主要是为了练习原生JS的使用,采用响应式开发,在手机端和桌面端都有良好的体验,而且使用CSS3添加了 ...
- 路径,通过navigation可以查看 *.class文件
?.class文件内的代码所在的文件的路径默认 举例1:读取项目根目录下的数据. private static void readRoot() throws FileNotFoundException ...
- java配置使用手册
进行java开发,首先要安装jdk,安装了jdk后还要进行环境变量配置: 1.下载jdk(http://java.sun.com/javase/downloads/index.jsp),我下载的版本是 ...
- Windows下面安装和配置MySQL(5.6.20)
1.首先到http://dev.mysql.com/ 上下载windows版mysql5.6免安装zip包.然后将zip包解压到D:\mysql-5.6.20-winx64下. 2.复制mysql下的 ...
- 工作总结 public DateTime? CollectionTime 可空类型 Code First
数据库生成就对应生成 可以为空 的字段
- DataGridView合并单元格(一列或一行)
#region"合并单元格的测试(一列或一行)" // int?是搜索一种类型(可空类型),普通的int不能为null,而用int?,其值可以为null //private int ...
- 【转】其他人的BUG
在软件行业,经常看到有的公司管理让一个人修补另一个人代码里的BUG.有时候有人写了一段代码,扔出来不管了,然后公司管理让其他工程师来修复它.我想告诉你们,这种方法会很失败. 首先,让一个人修复另一个人 ...
- linux内核线程,进程,线程
http://blog.csdn.net/dyllove98/article/details/8917197 Linux对于内存的管理涉及到非常多的方面,这篇文章首先从对进程虚拟地址空间的管理说起.( ...
- Linux内核scatterlist API介绍
1. 前言 我们在那些需要和用户空间交互大量数据的子系统(例如MMC[1].Video.Audio等)中,经常看到scatterlist的影子.对我们这些“非英语母语”的人来说,初见这个词汇,脑袋瞬间 ...