jQuery/CSS3实现图片层叠展开特效


这是一款基于jQuery和CSS3的图片层叠展开特效,让鼠标滑过图片时即可触发这些特效。主要由HTML、CSS以及jQuery代码组成。

HTML代码:

把要用到的小图片列出来,HTML结构非常简单。

  1. <div id="page_wrap">
  2. <!--Stack 1  -->
  3. <div class="image_stack" style="margin-left:600px">
  4. <img id="photo1" class="stackphotos" src="images/lanrenzhijia2.jpg"  >
  5. <img  id="photo2" class="stackphotos" src="images/lanrenzhijia3.jpg" >
  6. <img   id="photo3" class="stackphotos"  src="images/lanrenzhijia1.jpg" >
  7. </div>
  8. <!--Stack 2  -->
  9. <div class="image_stack" style="margin-left:300px">
  10. <img id="photo1" class="stackphotos" src="images/lanrenzhijia4.jpg"  >
  11. <img  id="photo2" class="stackphotos" src="images/lanrenzhijia5.jpg" >
  12. <img   id="photo3" class="stackphotos"  src="images/lanrenzhijia6.jpg" >
  13. </div>
  14. <div class="single_photo">
  15. <ul id="pics">
  16. <li><a href="#pic1" title="Photo"><img src="images/lanrenzhijia3.jpg" alt="picture"></a></li>
  17. </ul>
  18. </div>
  19. </div>

接下来是CSS,相对复杂一点,因为有用到CSS3相关的一些特性。

CSS代码:

主要是rotate实现图片翻转折叠的效果,另外指定了0.2s的ease动画。

  1. .image_stack img { /* css style for photo stack */
  2. border: none;
  3. text-decoration: none;
  4. position: absolute;
  5. margin-left:0px;
  6. width: 5074px;
  7. height: 5074px;
  8. }
  9. .image_stack { /* css style for photo stack */
  10. width: 400px;
  11. position: absolute;
  12. margin:60px 10px 10px;
  13. }
  14. .image_stack img { /* css style for photo stack */
  15. position: absolute;
  16. border: 4px solid #FFF;
  17. box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.5);
  18. -moz-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.5);
  19. -webkit-box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.5);
  20. z-index: 9999;
  21. /* Firefox */
  22. -moz-transition: all 0.2s ease;
  23. /* WebKit */
  24. -webkit-transition: all 0.2s ease;
  25. /* Opera */
  26. -o-transition: all 0.2s ease;
  27. /* Standard */
  28. transition: all 0.2s ease;
  29. }
  30. .image_stack #photo1 {  /* position of last photo in the stack */
  31. top: 8px;
  32. left: 108px;
  33. }
  34. .image_stack #photo2 {/* position of middle photo in the stack */
  35. top: 6px;
  36. left: 104px;
  37. }
  38. .image_stack #photo3 {/* position of first photo at the top in the stack */
  39. top: 4px;
  40. left: 100px;
  41. right: 100px;
  42. }
  43. .image_stack .rotate1 {/* rotate last image 15 degrees to the right */
  44. -webkit-transform: rotate(15deg); /* safari and chrome */
  45. -moz-transform: rotate(15deg);/*firefox browsers */
  46. transform: rotate(15deg);/*other */
  47. -ms-transform:rotate(15deg); /* Internet Explorer 9 */
  48. -o-transform:rotate(15deg); /* Opera */
  49. }
  50. .image_stack .rotate2 {/* css not used*/
  51. -webkit-transform: rotate(0deg); /* safari and chrome */
  52. -moz-transform: rotate(0deg);/*firefox browsers */
  53. transform: rotate(0deg);/*other */
  54. -ms-transform:rotate(0deg); /* Internet Explorer 9 */
  55. -o-transform:rotate(0deg); /* Opera */
  56. }
  57. .image_stack .rotate3 {/*rotate first image 15 degrees to the left*/
  58. -webkit-transform: rotate(-15deg); /* safari and chrome */
  59. -moz-transform: rotate(-15deg); /*firefox browsers */
  60. transform: rotate(-15deg);/*other */
  61. -ms-transform:rotate(-15deg); /* Internet Explorer 9 */
  62. -o-transform:rotate(-15deg); /* Opera */
  63. cursor: pointer;
  64. }

jQuery代码:

  1. $(document).ready(function() {
  2. $(".image_stack").delegate(‘img‘, ‘mouseenter‘, function() {//when user hover mouse on image with div id=stackphotos
  3. if ($(this).hasClass(‘stackphotos‘)) {//
  4. // 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
  5. var $parent = $(this).parent();
  6. $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 ! )
  7. $parent.find(‘img#photo2‘).addClass(‘rotate2‘);
  8. $parent.find(‘img#photo3‘).addClass(‘rotate3‘);
  9. $parent.find(‘img#photo1‘).css("left","150px"); // reposition the first and last image
  10. $parent.find(‘img#photo3‘).css("left","50px");
  11. }
  12. })
  13. .delegate(‘img‘, ‘mouseleave‘, function() {// when user removes cursor from the image stack
  14. $(‘img#photo1‘).removeClass(‘rotate1‘);// remove the css class that was previously added to make it to its original position
  15. $(‘img#photo2‘).removeClass(‘rotate2‘);
  16. $(‘img#photo3‘).removeClass(‘rotate3‘);
  17. $(‘img#photo1‘).css("left","");// remove the css property ‘left‘ value from the dom
  18. $(‘img#photo3‘).css("left","");
  19. });;
  20. });

其实jQuery也没什么事情,主要是动态为图片增加和删除类,用addClass和removeClass实现,这样鼠标滑过图片就可以翻转,鼠标离开图片又能够恢复,很不错吧。

jQuery/CSS3实现图片层叠展开特效,布布扣,bubuko.com

时间: 2024-10-24 02:13:27

jQuery/CSS3实现图片层叠展开特效的相关文章

基于jQuery图文排版图片预览特效

基于jQuery图文排版图片预览特效.这是一款基于jQuery+CSS3实现的鼠标点击图片弹出画廊切换特效. 在线预览   源码下载 实现的代码. html代码: <div id="fullscreen"> <div id="fullscreen-inner"> <div id="fullscreen-inner-left" class="fullscreen-inner-button">&

jQuery+CSS3过渡动画模态窗口特效

在线预览   源码下载 jQuery+CSS3过渡动画模态窗口特效是一款基于Codrops的ModalWindowEffects来制作,通过jQuery插件的方式来统一管理各种打开模态窗口的效果.适用浏览器:360.FireFox.Chrome.Opera.傲游.搜狗.世界之窗. 不支持Safari.IE8及以下浏览器. 加入前端爱好者QQ群(123235875) 点击加群,共同交流进度!

jQuery+CSS3实现404背景动画特效

效果:http://hovertree.com/texiao/jquery/74/ 源码下载:http://hovertree.com/h/bjaf/ko0gcgw5.htm 效果图如下: 代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title&

黄聪:手机移动端建站Jquery+CSS3+HTML5触屏滑动特效插件、实现触屏焦点图、图片轮展图

前言 TouchSlide 可以说是 SuperSlide 手机简化版,不同的地方在于:1.TouchSlide是纯javascript开发的,不依赖任何js库,鉴于此,TouchSlide调用方法和SuperSlide有点不同.调用方法为:TouchSlide({slideCell:"#slider",effect:"leftLoop"});(slideCell必须为id对象);同样效果,SuperSlide调用方法为:jQuery("#slider&q

js实现左右点击图片层叠滚动特效

需要加载js有 <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script><script type="text/javascript" src="js/jquery.corner.js"></script><script type="text/javascript" src=

分享jQuery&amp;CSS3导航标签切换效果

jquery+css3完成的菜单导航特效 引入代码: <link rel="stylesheet" type="text/css" href="css/style.css"/> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="t

10款功能强大的jQuery/CSS3图片特效插件

1.CSS3实现的底部带滚动云彩效果的网站登录页面 CSS3实现的底部带滚动云彩效果的网站登录页面特效源码,是一段实现页面底部拥有滚动云彩动态效果的特效源码,想要在网站中实现此类效果的朋友们可以前来下载使用.本段代码兼容目前最新的各类主流浏览器,是一款非常优秀的特效源码. 在线演示 源码下载 2.HTML5实现的3D球体斑点运动动画特效源码 这是一个很酷的HTML5 3D动画效果,是一个小球,小球表面出现跳动的斑点,斑点跳动时形成各种各样的形状,其实这款动画并不是正宗的HTML5 3D动画,而是

10款jQuery+CSS3实现的多种图片切换焦点图

1.js实现的七屏百叶窗焦点图动态特效 可以实现可以同时显示很多找竖行百叶窗效果的缩略图,代码,鼠标悬浮在一张缩略图上时,该图片就在原位置变亮并慢慢展开,同时两边的缩略图就往两边缩小靠近,需要此种焦点图效果的朋友们可以前来下载使用. 在线演示 源码下载 2.jQuery+CSS3实现的多种图片切换方式简易焦点图 今天要来分享一款简易的jQuery+CSS3焦点图应用,这款焦点图应用的图片切换方式非常丰富,而且焦点图的切换按钮比较小,图片篇幅占据比较大,因此总体比较大气. 在线演示 源码下载 3.

基于HTML5+CSS3的图片旋转、无限滚动、文字跳动特效

本文分享几种基于HTML5+CSS3实现的一些动画特效:图片旋转.无限滚动.文字跳动;实现起来均比较容易,动手来试试! 一.图片旋转 效果图如下: 这个效果实现起来其实并不困难.代码清单如下: <style type="text/css"> #liu{ width:280px; height: 279px; background: url(shishi.png) no-repeat; border-radius:140px; -webkit-animation:run 6s