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