日期:2014-05-17 浏览次数:20657 次
Jquery和CSS3实现图片鱼眼显示效果
?
?基本效果:鼠标移动到图片上时,放大图片同时将该图片周围的图片适当放大,形成一个鱼眼效果,图片依次高亮显示。我们可以参看http://porscheeveryday.com/?这个swf的显示效果。为了用jquery实现该效果,我们将使用一个插件 jQuery Proximity plugin?作者 James Padolsey.
现在让我们一步步学习如何实现类似的鱼眼效果。首先我们构建主容器展示图片。采用ul无序列表方式来组织图片,代码如下
<ul id="pe-thumbs" class="pe-thumbs">
???? <li><a href="#"><img src="images/thumbs/1.jpg" />
???????????? <div class="pe-description"><h3>鱼眼效果</h3><p>美瑞网www.mxria.com</p></div></a></li>
???? <li><!-- ... --></li>
</ul>
主容器构建好后,我们接下来定义样式。CSS3代码如下,背景采用透明处理,同时给容器加上了阴影效果。
.pe-thumbs:before {???? content: ""; ???? display: block; ???? position: absolute; ???? top: 0px; ???? left: 0px; ???? width: 100%; ???? height: 100%; ???? background: rgba(255,102,0,0.2); ?}
为了增加更好的效果,我们使用:before伪元素增添了对比效应。这里出现了一个很特别的伪元素:rgba,这里对其简要说明。background在CSS3中得到了大力增强,背景透明效果如上面的代码中有用到,而rgba它的效果类似opacity,可以取得很风骚的半透明的效果,如果应用到合适的配色,效果很赞。最主要的区别是,它不会将该区块里头含有的文字也变成半透明,只是改变容器区块。
?? .pe-thumbs:before {
??? content: "";
??? display: block;
??? position: absolute;
??? top: 0px;
??? left: 0px;
??? width: 100%;
??? height: 100%;
??? background: rgba(255,102,0,0.2);
}
为每个图片项设置相应的样式,定义其位置、透明度。
?
.pe-thumbs li{
????
float
:
left
;
????
position
:
relative
;
}
.pe-thumbs li a,
.pe-thumbs li a img{
????
display
:
block
;
????
position
:
relative
;
}
其他部分略过,大家可以看源代码中的内容。下面来看看Javascript部分。
JS部分主要的思路就是当鼠标接近图片后,对利用hover效果来触发,对光标悬停的图片进行位置计算,并将其相连的图片进行对应的样式转换,其中核心的内容就是识别出主容器边缘的图片,并进行相应处理。代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
|