图片/图形

炫酷堆叠卡片展开收缩jQuery特效

阿里云


这是一款效果超酷的 jQuery 和 CSS3 堆叠卡片展开和收缩特效。该图片特效开始的时候卡片被堆叠在一起,当用户点击最上面的卡片的时候,堆叠图片以各种动画方式展开。展开后再点击任意卡片,它们又会收缩堆叠起来。

HTML 结构

该堆叠卡片共设计了 4 种效果,第一种效果的 HTML 结构采用无序列表结构,每一个<li>元素中放置一张图片和一个用于图片描述的 div.content 元素。

也想出现在这里?联系我们
创客主机
  1. <ul class="cards">
  2.   <li class="title">
  3.     <h2>Slide right</h2>
  4.   </li>
  5.   <li class="card card-1"><img src="img/01.jpg"/>
  6.     <div class="content">
  7.       <h1>Card 1 Title</h1>
  8.       <p>Card description</p>
  9.     </div>
  10.   </li>
  11.   <li class="card card-2"><img src="img/02.jpg"/>
  12.     <div class="content">
  13.       <h1>Card 2 Title</h1>
  14.       <p>Card description</p>
  15.     </div>
  16.   </li>
  17.   <li class="card card-3"><img src="img/03.jpg"/>
  18.     <div class="content">
  19.       <h1>Card 3 Title</h1>
  20.       <p>Card description</p>
  21.     </div>
  22.   </li>
  23. </ul>

CSS 样式

第一种卡片效果的每张卡片的基本样式如下:

  1. ul.cards {
  2.   width: 660px;
  3.   margin: 0 auto 20px;
  4.   height: 300px;
  5.   list-style-type: none;
  6.   position: relative;
  7.   padding: 20px 0;
  8.   cursor: pointer;
  9. }
  10. ul.cards li.title {
  11.   margin: 0 0 20px;
  12. }
  13. ul.cards li.title h2 {
  14.   font-weight: 700;
  15. }
  16. ul.cards li.card {
  17.   background: #FFF;
  18.   overflow: hidden;
  19.   height: 200px;
  20.   width: 200px;
  21.   border-radius: 10px;
  22.   position: absolute;
  23.   left: 0px;
  24.   box-shadow: 1px 2px 2px 0 #aaa;
  25.   -webkit-transition: all 0.4s cubic-bezier(0.63, 0.15, 0.03, 1.12);
  26.           transition: all 0.4s cubic-bezier(0.63, 0.15, 0.03, 1.12);
  27. }
  28. ul.cards li.card img {
  29.   max-width: 100%;
  30.   padding: 5px;
  31.   height: auto;
  32. }
  33. ul.cards li.card div.content {
  34.   padding: 5px 10px;
  35. }

然后使用 rotateZ 和 z-index 属性来将图片堆叠在一起并分别旋转一定的角度。同时为后面两张卡片添加 transition-delay,用于在卡片展开和收缩时有一定的延迟时间。

  1. ul.cards li.card.card-1 {
  2.   z-index: 10;
  3.   -webkit-transform: rotateZ(-2deg);
  4.           transform: rotateZ(-2deg);
  5. }
  6. ul.cards li.card.card-2 {
  7.   z-index: 9;
  8.   -webkit-transform: rotateZ(-7deg);
  9.           transform: rotateZ(-7deg);
  10.   -webkit-transition-delay: 0.05s;
  11.           transition-delay: 0.05s;
  12. }
  13. ul.cards li.card.card-3 {
  14.   z-index: 8;
  15.   -webkit-transform: rotateZ(5deg);
  16.           transform: rotateZ(5deg);
  17.   -webkit-transition-delay: 0.1s;
  18.           transition-delay: 0.1s;
  19. }

在堆叠卡片被点击的时候,ul.card 元素被添加了 transition class,这个 class 用于执行卡片的展开动画。

  1. ul.cards.transition li.card {
  2.   -webkit-transform: rotateZ(0deg);
  3.           transform: rotateZ(0deg);
  4. }
  5. ul.cards.transition li.card.card-1 {
  6.   left: 440px;
  7. }
  8. ul.cards.transition li.card.card-2 {
  9.   left: 220px;
  10. }

其它三种效果的实现原理基本相同,请参考下载文件。

JAVASCRIPT

特效中使用 jQuery 来在点击卡片时添加和移除相应的 class。

  1. jQuery(document).ready(function ($) {
  2.     $('ul.cards').on('click', function () {
  3.         $(this).toggleClass('transition');
  4.     });
  5.     $('ul.card-stacks').on('click', function () {
  6.         $(this).toggleClass('transition');
  7.     });
  8.     $('ul.cards-split').on('click', function () {
  9.         $(this).toggleClass('transition');
  10.     });
  11.     $('ul.cards-split-delay').on('click', function () {
  12.         $(this).toggleClass('transition');
  13.     });
  14. });

炫酷堆叠卡片展开收缩 jQuery 特效

已有 529 人购买
查看演示升级 VIP立刻购买

演示地址 下载地址
收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!