jQuery照片伸缩效果不影响其他元素的布局


Posted in Javascript onMay 09, 2014

之前在网上看到这种特效,无奈当时没有收藏网址,导致后来一度不知道这个特效是怎么实现的。今天特意在网上搜罗了一下,果然功夫不负有心人,被我找到了。

我也努力过自己尝试着写:

但只是单纯的图片放大,而且还影响了图片周围的元素的布局(因为图片放大占据了更大的空间)。

后来发现要灵活巧妙的运用overflow和position这两个属性,就能达到目的。其实我觉得CSS(CSS3)中的overflow和position(顺带的top,bottom,left,right)简直是做网页特效无解的组合,当然还是js(jquery)是老大。

废话说了这么多,大家肯定还是很疑惑:这到底是什么特效呢?唉,我的语言表达能力还是很一般,下面我就截图来说明好了:

这个是网页打开的初始模样:
jQuery照片伸缩效果不影响其他元素的布局 
当把鼠标停留在以上6张图片的任意一张图片的时候,会出现我所说的特效(这里我把鼠标放在第3张作为示例):
jQuery照片伸缩效果不影响其他元素的布局 
你会发现图片是缩小了,鼠标放开图片感觉又放大了(回到初始状态),而没有图片溢出的现象,而且不影响其他图片和元素的布局。

下面贴代码了:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>jQuery照片伸缩效果</title> 
</head> 
<!-- The Style --> 
<style type="text/css"> 
*{ 
margin: 0; 
padding: 0; 
} 
body{ 
font-family: "Myriad Pro", "Trebuchet MS", Helvetica, sans-serif; 
font-size: 12px; 
color: #fff; 
} 
#col { 
width: 600px; 
height:400px; 
margin: 20px auto 0px auto; 
border: 1px solid #2D353F; 
} 
.pic { 
width: 200px; 
height: 200px; 
margin: 0px; 
overflow: hidden;/*这边定义了overflow为hidden*/ 
position: relative;/*这边定义了position为relative,这其实是为了下面的img的position可以依照pic定位*/ 
float: left; 
} 
/*图片的原始大小是500*333左右*/ 
/*这里并没有对width宽度做文章,是对height高度做文章的*/ 
.pic a img { 
height: 500px; 
border: none; 
position: absolute; /*正因为父标签定义了position,这边img定义position才有定位依据,要不然就是对于整个浏览器进行定位*/ 
top: -66.5px; 
left: -150px; 
opacity: 0.5; 
-moz-opacity: 0.5; 
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50);/*这边为了兼容浏览器,和opacity属性的作用是一样的*/ 
} </style> 
<!-- The JavaScript --> 
<script type="text/javascript" src="js/jquery.min.js"></script> 
<script type="text/javascript"> 
$(function() { 
$('#col img').hover( 
function(){ 
var $this = $(this); 
$this.stop().animate({'opacity':'1.0','height':'200px','top':'0px','left':'0px'}); 
}, 
function(){ 
var $this = $(this); 
$this.stop().animate({'opacity':'0.5','height':'500px','top':'-66.5px','left':'-150px'}); 
} 
); 
}); 
</script> 
<body> 
<div id="col"> 
<div class="pic"> 
<a href="#"> 
<img src="Images/1.jpg"/> 
</a> 
</div> 
<div class="pic"> 
<a href="#"> 
<img src="Images/2.jpg"/> 
</a> 
</div> 
<div class="pic"> 
<a href="#"> 
<img src="Images/3.jpg"/> 
</a> 
</div> 
<div class="pic"> 
<a href="#"> 
<img src="Images/4.jpg"/> 
</a> 
</div> 
<div class="pic"> 
<a href="#"> 
<img src="Images/5.jpg"/> 
</a> 
</div> 
<div class="pic"> 
<a href="#"> 
<img src="Images/6.jpg"/> 
</a> 
</div> 
</div> 
</body> 
</html>
Javascript 相关文章推荐
js GridView 实现自动计算操作代码
Mar 25 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
Nov 25 Javascript
javascript中字符串的定义示例代码
Dec 19 Javascript
Javascript中的delete操作符详细介绍
Jun 06 Javascript
jquery实现最简单的滑动菜单效果代码
Sep 12 Javascript
JS实现的系统调色板完整实例
Dec 21 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
Apr 18 Javascript
对存在JavaScript隐式类型转换的四种情况的总结(必看篇)
Aug 31 Javascript
vue监听scroll的坑的解决方法
Sep 07 Javascript
原生实现一个react-redux的代码示例
Jun 08 Javascript
JavaScript页面加载事件实例讲解
Sep 01 Javascript
基于vue+echarts数据可视化大屏展示的实现
Dec 25 Vue.js
js四舍五入数学函数round使用实例
May 09 #Javascript
JavaScript实现的购物车效果可以运用在好多地方
May 09 #Javascript
关于Javascript 对象(object)的prototype
May 09 #Javascript
javascript字母大小写转换的4个函数详解
May 09 #Javascript
js统计页面的来访次数实现代码
May 09 #Javascript
JavaScript Array对象扩展indexOf()方法
May 09 #Javascript
js获取鼠标点击的位置实现思路及代码
May 09 #Javascript
You might like
MySQL连接数超过限制的解决方法
2011/07/17 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
2011/09/19 PHP
php利用cookie实现自动登录的方法
2014/12/10 PHP
最新最全PHP生成制作验证码代码详解(推荐)
2016/06/12 PHP
PHP实现随机发放扑克牌
2020/04/21 PHP
jQuery 改变CSS样式基础代码
2010/02/11 Javascript
基于JQuery的cookie插件
2010/04/07 Javascript
JS常见问题整理(持续更新)
2013/08/06 Javascript
jQuery.holdReady()方法用法实例
2014/12/27 Javascript
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
jquery动态创建div与input的实例代码
2016/10/12 Javascript
jQuery导航条固定定位效果实例代码
2017/05/26 jQuery
webstorm+vue初始化项目的方法
2018/10/18 Javascript
vuex 解决报错this.$store.commit is not a function的方法
2018/12/17 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
微信小程序webview 脚手架使用详解
2019/07/22 Javascript
vue中更改数组中属性,在页面中不生效的解决方法
2019/10/30 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
JavaScript代码实现简单计算器
2020/12/27 Javascript
Python标准库之循环器(itertools)介绍
2014/11/25 Python
把MySQL表结构映射为Python中的对象的教程
2015/04/07 Python
Python算法之求n个节点不同二叉树个数
2017/10/27 Python
Sublime开发python程序的示例代码
2018/01/24 Python
Python文件常见操作实例分析【读写、遍历】
2018/12/10 Python
python实现整数的二进制循环移位
2019/03/08 Python
通过实例解析Python调用json模块
2019/12/11 Python
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
如何为DataGridView添加一个定制的Column Type
2014/01/21 面试题
计算机网络专业自荐书
2014/06/09 职场文书
2015年社区宣传工作总结
2015/05/20 职场文书
诚信考试主题班会
2015/08/17 职场文书
职场干货:简历中的自我评价应该这样写!
2019/05/06 职场文书
NodeJs内存占用过高的排查实战记录
2021/05/10 NodeJs
PyCharm 安装与使用配置教程(windows,mac通用)
2021/05/12 Python
python 爬取吉首大学网站成绩单
2021/06/02 Python
JavaScript如何优化逻辑判断代码详解
2021/06/08 Javascript