創意jQuery和CSS3滑動覆蓋響應式幻燈片特效

jopen 8年前發布 | 23K 次閱讀 jQuery CSS3

這是一款非常有創意的jQuery和CSS3滑動覆蓋響應式幻燈片特效。該幻燈片特效采用響應式設計,在幻燈片切換時使用一個滑動塊狀區域來進行覆蓋,顯示新的幻燈片內容,整體效果非常不錯。推薦閱讀:之前分享過一款 純CSS3超酷全屏響應式幻燈片特效 ,代碼僅有100多行,非常小巧。

創意jQuery和CSS3滑動覆蓋響應式幻燈片特效

查看演示       下載插件

使用方法

HTML結構

該幻燈片的HTML結果由兩部分組成:一個ul.cd-slider用于制作幻燈片,ol.cd-slider-navigation則用于制作幻燈片的導航。它們都被包裹在div.cd-slider-wrapper容器中。

<div class="cd-slider-wrapper">
  <ul class="cd-slider">
    <li class="is-visible">
      <div class="cd-half-block image"></div>

      <div class="cd-half-block content">
        <div>
          <h2>Slide Number 1</h2>
          <p>
            <!-- 內容 -->
          </p>
        </div>
      </div>
    </li> <!-- .cd-half-block.content -->

    <li>
      <!-- 第二個幻燈片項的內容 -->
    </li>

    <!-- 其它的幻燈片項放在這里 -->
  </ul> <!-- .cd-slider -->

  <!-- ol.cd-slider-navigation 元素會在這里使用jQuery來創建-->
</div> <!-- .cd-slider-wrapper -->

需要注意的是幻燈片的導航元素ol.cd-slider-navigation不是直接插入到DOM中的,而是通過jQuery來動態添加的。

CSS樣式

在小屏幕設備中(視口小于900px),幻燈片的結果非常簡單:.cd-slider元素使用相對定位,它的所有<li>子元素都采用絕對定位,開始時位于左上角的位置。

所有的列表項都通過translateX(100%)被移動到右側屏幕之外。另外.is-visibleclass類用于將它們移動會屏幕中間(使用translateX(0))。

.cd-slider {
  position: relative;
  height: 100%;
  overflow: hidden;
}
.cd-slider li {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  transform: translateX(100%);
  transition: transform 0.6s;
}
.cd-slider li.is-visible {
  transform: translateX(0);
}

在大屏幕設備中,列表項通過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圖片來觀察這個動畫過程。

創意jQuery和CSS3滑動覆蓋響應式幻燈片特效

@media only screen and (min-width: 900px) {
  .cd-slider li {
    transform: translateX(0);
  }
  .cd-slider .cd-half-block {
    height: 100%;
    width: 50%;
    float: right;
  }
  .cd-slider .cd-half-block.content {
    transform: translateX(200%);
    transition: transform 0.6s 0s ease-in-out;
  }
  .cd-slider .cd-half-block.image {
    transform: translateX(100%);
    transition: transform 0s 0.3s;
  }
  .cd-slider li.is-visible .cd-half-block.content,
  .cd-slider li.is-visible .cd-half-block.image {
    transform: translateX(0%);
  }
  .cd-slider li.is-visible .cd-half-block.content {
    transition: transform 0.6s 0s ease-in-out;
  }
}

JavaScript

該幻燈片特效中使用jQuery來動態插入幻燈片的導航按鈕。

// sliderContainer = $('.cd-slider-wrapper')
var sliderPagination = createSliderPagination(sliderContainer); 
function createSliderPagination(container){
  var wrapper = $('<ol class="cd-slider-navigation"></ol>');
  container.children('.cd-slider').find('li').each(function(index){
    var dotWrapper = (index == 0) ? $('<li class="selected"></li>') 
                                  : $('<li></li>'),
    dot = $('<a href="#0"></a>').appendTo(dotWrapper);
    dotWrapper.appendTo(wrapper);
    var dotText = ( index+1 < 10 ) ? '0'+ (index+1) : index+1;
    dot.text(dotText);
  });
  wrapper.appendTo(container);
  return wrapper.children('li');
}

另外還使用jQuery來實現了基本的幻燈片功能,包括滑動觸摸和幻燈片導航功能。

來源:jQuery之家

來自: http://www.原網站已經失效/article-9275-1.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!