jQuery/CSS3实现图片层叠展开特效
这是一款基于jQuery和CSS3的图片层叠展开特效,让鼠标滑过图片时即可触发这些特效。其中有一款就像扇子展开收拢一样,看起来效果都非常不错。当然本文主要还是来分析一下用jQuery实现这一效果的方法,具体效果可以在在线演示中查看。
你也可以在这里查看在线DEMO演示
说说实现的方法和代码吧,主要由HTML、CSS以及jQuery代码组成。
HTML代码:
- <div id="page_wrap">
- <!--Stack 1 -->
- <div class="image_stack" style="margin-left:600px">
- <img id="photo1" class="stackphotos" src="data:images/lanrenzhijia2.jpg" >
- <img id="photo2" class="stackphotos" src="data:images/lanrenzhijia3.jpg" >
- <img id="photo3" class="stackphotos" src="data:images/lanrenzhijia1.jpg" >
- </div>
- <!--Stack 2 -->
- <div class="image_stack" style="margin-left:300px">
- <img id="photo1" class="stackphotos" src="data:images/lanrenzhijia4.jpg" >
- <img id="photo2" class="stackphotos" src="data:images/lanrenzhijia5.jpg" >
- <img id="photo3" class="stackphotos" src="data:images/lanrenzhijia6.jpg" >
- </div>
- <div class="single_photo">
- <ul id="pics">
- <li><a href="#pic1" title="Photo"><img src="data:images/lanrenzhijia3.jpg" alt="picture"></a></li>
- </ul>
- </div>
- </div>
把要用到的小图片列出来,HTML结构非常简单。
接下来是CSS,相对复杂一点,因为有用到CSS3相关的一些特性。
CSS代码:
- .image_stack img { /* css style for photo stack */
- border: none;
- text-decoration: none;
- position: absolute;
- margin-left:0px;
- width: 158px;
- height: 158px;
- }
- .image_stack { /* css style for photo stack */
- width: 400px;
- position: absolute;
- margin:60px 10px 10px;
- }
- .image_stack img { /* css style for photo stack */
- position: absolute;
- border: 4px solid #FFF;
- box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.5);
- -moz-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.5);
- -webkit-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.5);
- z-index:;
- /* Firefox */
- -moz-transition: all 0.2s ease;
- /* WebKit */
- -webkit-transition: all 0.2s ease;
- /* Opera */
- -o-transition: all 0.2s ease;
- /* Standard */
- transition: all 0.2s ease;
- }
- .image_stack #photo1 { /* position of last photo in the stack */
- top: 8px;
- left: 108px;
- }
- .image_stack #photo2 {/* position of middle photo in the stack */
- top: 6px;
- left: 104px;
- }
- .image_stack #photo3 {/* position of first photo at the top in the stack */
- top: 4px;
- left: 100px;
- right: 100px;
- }
- .image_stack .rotate1 {/* rotate last image 15 degrees to the right */
- -webkit-transform: rotate(15deg); /* safari and chrome */
- -moz-transform: rotate(15deg);/*firefox browsers */
- transform: rotate(15deg);/*other */
- -ms-transform:rotate(15deg); /* Internet Explorer 9 */
- -o-transform:rotate(15deg); /* Opera */
- }
- .image_stack .rotate2 {/* css not used*/
- -webkit-transform: rotate(0deg); /* safari and chrome */
- -moz-transform: rotate(0deg);/*firefox browsers */
- transform: rotate(0deg);/*other */
- -ms-transform:rotate(0deg); /* Internet Explorer 9 */
- -o-transform:rotate(0deg); /* Opera */
- }
- .image_stack .rotate3 {/*rotate first image 15 degrees to the left*/
- -webkit-transform: rotate(-15deg); /* safari and chrome */
- -moz-transform: rotate(-15deg); /*firefox browsers */
- transform: rotate(-15deg);/*other */
- -ms-transform:rotate(-15deg); /* Internet Explorer 9 */
- -o-transform:rotate(-15deg); /* Opera */
- cursor: pointer;
- }
看出来了吧,主要是rotate实现图片翻转折叠的效果,另外指定了0.2s的ease动画。
jQuery代码:
- $(document).ready(function() {
- $(".image_stack").delegate('img', 'mouseenter', function() {//when user hover mouse on image with div id=stackphotos
- if ($(this).hasClass('stackphotos')) {//
- // the class stackphotos is not really defined in css , it is only assigned to each images in the photo stack to trigger the mouseover effect on these photos only
- var $parent = $(this).parent();
- $parent.find('img#photo1').addClass('rotate1');//add class rotate1,rotate2,rotate3 to each image so that it rotates to the correct degree in the correct direction ( 15 degrees one to the left , one to the right ! )
- $parent.find('img#photo2').addClass('rotate2');
- $parent.find('img#photo3').addClass('rotate3');
- $parent.find('img#photo1').css("left","150px"); // reposition the first and last image
- $parent.find('img#photo3').css("left","50px");
- }
- })
- .delegate('img', 'mouseleave', function() {// when user removes cursor from the image stack
- $('img#photo1').removeClass('rotate1');// remove the css class that was previously added to make it to its original position
- $('img#photo2').removeClass('rotate2');
- $('img#photo3').removeClass('rotate3');
- $('img#photo1').css("left","");// remove the css property 'left' value from the dom
- $('img#photo3').css("left","");
- });;
- });
其实jQuery也没什么事情,主要是动态为图片增加和删除类,用addClass和removeClass实现,这样鼠标滑过图片就可以翻转,鼠标离开图片又能够恢复,很不错吧。你也可以下载源代码研究。源码下载>>
jQuery/CSS3实现图片层叠展开特效的更多相关文章
- jQuery+CSS3实现404背景动画特效
效果:http://hovertree.com/texiao/jquery/74/ 源码下载:http://hovertree.com/h/bjaf/ko0gcgw5.htm 效果图如下: 代码如下: ...
- 黄聪:手机移动端建站Jquery+CSS3+HTML5触屏滑动特效插件、实现触屏焦点图、图片轮展图
前言 TouchSlide 可以说是 SuperSlide 手机简化版,不同的地方在于:1.TouchSlide是纯javascript开发的,不依赖任何js库,鉴于此,TouchSlide调用方法和 ...
- js实现左右点击图片层叠滚动特效
需要加载js有 <script type="text/javascript" src="js/jquery-1.7.2.min.js"></s ...
- 20+功能强大的jQuery/CSS3图片特效插件
以下是分享的20几个不错的图片特效插件,基于jQuery和CSS3. 1.jQuery图片下滑切换播放效果 这是一款基于jQuery的焦点图插件,这款焦点图的特点是有向下滑动的动画效果,滑到底部时,有 ...
- jQuery css3鼠标悬停图片显示遮罩层动画特效
jQuery css3鼠标悬停图片显示遮罩层动画特效 效果体验:http://hovertree.com/texiao/jquery/39/ 效果图: 源码下载:http://hovertree.co ...
- 40免费的 jQuery & CSS3 图片热点特效
jQuery CSS3 形象悬停效果可能是一个优秀的网站项目中添加的效果.这个特殊的收集是大约50个 jQuery CSS3 形象徘徊影响最近出版的.这些图像悬停效果可以作为一个有效的和创造性的方式添 ...
- Image Wall - jQuery & CSS3 图片墙效果
今天我们要为您展示如何基于 jQuery 和 CSS3 创建一个整洁的图片墙效果.我们的想法是在页面上洒上一些大小不同的缩略图,并在当我们点击图片时候显示丝带,会显示一些描述,再次点击缩略图时,丝带将 ...
- 15款效果很酷的最新jQuery/CSS3特效
很久没来博客园发表文章了,今天就分享15款效果很酷的最新jQuery/CSS3特效,废话不说,一起来看看吧. 1.3D图片上下翻牌切换 一款基于jQuery+CSS3实现的3D图片上下翻牌切换效果,支 ...
- 基于HTML5+CSS3的图片旋转、无限滚动、文字跳动特效
本文分享几种基于HTML5+CSS3实现的一些动画特效:图片旋转.无限滚动.文字跳动;实现起来均比较容易,动手来试试! 一.图片旋转 效果图如下: 这个效果实现起来其实并不困难.代码清单如下: < ...
随机推荐
- 各个函数消耗的时间profiling和内存泄漏valgrind
来源:http://06110120wxc.blog.163.com/blog/static/37788161201333112445844/ ARM(hisi)上面的profiling和valgri ...
- 【转】app瘦身
iPhone经过这几年的发展,已经发生了很大的变化,例如屏幕变得更加多样,尺寸更多,内存变得更大,CPU的架构也在变化.伴随着iPhone的变化,iOS也在变化,例如AutoLayout.size c ...
- php 读xml的两种方式
<?xml version="1.0" encoding="ISO-8859-1"?> <st> <stu> <nam ...
- hibernate注解原理
持续更新中.. hibernate注解用的是java注解,用到的是java反射机制.
- HTML5新增的属性和废除的属性
HTML5中,在新增加和废除很多元素的同时,也增加和废除了很多属性. 新增的属性 1.表单相关的属性 对input(type=text).select.textarea与button指定autofoc ...
- BestCoder Round 59 (HDOJ 5500) Reorder the Books
Problem Description dxy has a collection of a series of books called “The Stories of SDOI”,There are ...
- js 定义函数的几种方法 以及如何调用
/*1.方法调用模式: 先定义一个对象,然后在对象的属性中定义方法,通过myobject.property来执行方法,this即指当前的myobject 对象.*/ var car = { carId ...
- j2ee开发中的“java容器”和“web容器”有什么区别?
http://blog.csdn.net/zi_jun/article/details/7387259
- Ubuntu11.10与r8168网卡不兼容导致网络时断时续的问题
安装了ubuntu11.10之后,感觉上网啥的很不稳定,ssh连接内网机器也是一条命令卡半天,检查了各方面的原因,网络没有什么问题,最后才发现是网卡驱动的问题,网上搜了一下是由于linux(ubunt ...
- C++拾遗(十)类与动态内存分配(2)
静态成员函数 声明时包含关键字static.注意以下两点: 1.使用静态成员函数时不能通过对象或者this指针来调用,只能使用类名+作用域解析符来调用. 2.静态成员函数只能使用静态成员. new操作 ...