幻灯片/轮播

创意CSS3滑动覆盖幻灯片jQuery特效

阿里云


这是一款非常有创意的 jQuery 和 CSS3 滑动覆盖响应式幻灯片特效。该幻灯片特效采用响应式设计,在幻灯片切换时使用一个滑动块状区域来进行覆盖,显示新的幻灯片内容,整体效果非常不错。

HTML 结构:

该幻灯片的 HTML 结果由两部分组成:一个 ul.cd-slider 用于制作幻灯片,ol.cd-slider-navigation 则用于制作幻灯片的导航。它们都被包裹在 div.cd-slider-wrapper 容器中。

也想出现在这里?联系我们
创客主机
  1. <div class="cd-slider-wrapper">
  2.   <ul class="cd-slider">
  3.     <li class="is-visible">
  4.       <div class="cd-half-block image"></div>
  5.  
  6.       <div class="cd-half-block content">
  7.         <div>
  8.           <h2>Slide Number 1</h2>
  9.           <p>
  10.             <!-- 内容 -->
  11.           </p>
  12.         </div>
  13.       </div>
  14.     </li> <!-- .cd-half-block.content -->
  15.  
  16.     <li>
  17.       <!-- 第二个幻灯片项的内容 -->
  18.     </li>
  19.  
  20.     <!-- 其它的幻灯片项放在这里 -->
  21.   </ul> <!-- .cd-slider -->
  22.  
  23.   <!-- ol.cd-slider-navigation 元素会在这里使用jQuery来创建-->
  24. </div> <!-- .cd-slider-wrapper -->

需要注意的是幻灯片的导航元素 ol.cd-slider-navigation 不是直接插入到 DOM 中的,而是通过 jQuery 来动态添加的。

CSS 样式:

在小屏幕设备中(视口小于 900px),幻灯片的结果非常简单:.cd-slider 元素使用相对定位,它的所有

  • 子元素都采用绝对定位,开始时位于左上角的位置。所有的列表项都通过 translateX(100%)被移动到右侧屏幕之外。另外.is-visibleclass 类用于将它们移动会屏幕中间(使用 translateX(0))。
    1. .cd-slider {
    2.   position: relative;
    3.   height: 100%;
    4.   overflow: hidden;
    5. }
    6. .cd-slider li {
    7.   position: absolute;
    8.   top: 0;
    9.   left: 0;
    10.   height: 100%;
    11.   width: 100%;
    12.   transform: translateX(100%);
    13.   transition: transform 0.6s;
    14. }
    15. .cd-slider li.is-visible {
    16.   transform: translateX(0);
    17. }

    在大屏幕设备中,列表项通过 translateX(0)移动会视口中,而他的两个子元素.cd-half-block.content 和.cd-half-block.image 被移动到屏幕的右侧,分别是 translateX(200%)和 translateX(100%)。当前被选择的幻灯片项被添加了.is-visible class 之后,这两个.cd-half-block 元素会被使用 translateX(0)移动会屏幕中间。这里的动画都使用了 CSS3 Transitions 过渡动画效果。对于.cd-half-block.content 元素,设置了 0.6 秒的 transition-duration 和 0 秒的 transition-delay,而.cd-half-block.image 元素则设置了 0 秒的 transition-duration 和 0.3 秒的 transition-delay,这样,当.cd-half-block.content 元素动画过渡进行到一半的时候,.cd-half-block.image 元素就会立刻移动回屏幕的中间。可以通过下面的这张 GIF 图片来观察这个动画过程。

    1. @media only screen and (min-width: 900px) {
    2.   .cd-slider li {
    3.     transform: translateX(0);
    4.   }
    5.   .cd-slider .cd-half-block {
    6.     height: 100%;
    7.     width: 50%;
    8.     float: right;
    9.   }
    10.   .cd-slider .cd-half-block.content {
    11.     transform: translateX(200%);
    12.     transition: transform 0.6s 0s ease-in-out;
    13.   }
    14.   .cd-slider .cd-half-block.image {
    15.     transform: translateX(100%);
    16.     transition: transform 0s 0.3s;
    17.   }
    18.   .cd-slider li.is-visible .cd-half-block.content,
    19.   .cd-slider li.is-visible .cd-half-block.image {
    20.     transform: translateX(0%);
    21.   }
    22.   .cd-slider li.is-visible .cd-half-block.content {
    23.     transition: transform 0.6s 0s ease-in-out;
    24.   }
    25. }

    JavaScript:

    该幻灯片特效中使用 jQuery 来动态插入幻灯片的导航按钮。

    1. // sliderContainer = $('.cd-slider-wrapper')
    2. var sliderPagination = createSliderPagination(sliderContainer); 
    3. function createSliderPagination(container){
    4.   var wrapper = $('<ol class="cd-slider-navigation"></ol>');
    5.   container.children('.cd-slider').find('li').each(function(index){
    6.     var dotWrapper = (index == 0) ? $('<li class="selected"></li>') 
    7.                                   : $('<li></li>'),
    8.     dot = $('<a href="#0"></a>').appendTo(dotWrapper);
    9.     dotWrapper.appendTo(wrapper);
    10.     var dotText = ( index+1 < 10 ) ? '0'+ (index+1) : index+1;
    11.     dot.text(dotText);
    12.   });
    13.   wrapper.appendTo(container);
    14.   return wrapper.children('li');
    15. }

    另外还使用 jQuery 来实现了基本的幻灯片功能,包括滑动触摸和幻灯片导航功能。

    创意 CSS3 滑动覆盖幻灯片 jQuery 特效

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

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

    发表回复

    热销模板

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

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