目錄
Title5
首頁 web前端 H5教程 使用html5 css3來實作slider切換效果告別javascript css_html5教學技巧

使用html5 css3來實作slider切換效果告別javascript css_html5教學技巧

May 16, 2016 pm 03:50 PM
切換

好吧,上次說要趕緊的補上幾篇文章,結果淡定的失約了。又是近一個月才發一篇,真是讓人鬱悶。發現最近總是抽不出時間了,基本上都是一個專案接一個專案的安排,自己不是在空閒的時候找不到合適的話題,就是在有糾結話題的時候抽不出時間了。所以我決定一段時間內先把自己糾結過的問題先歸納下知識點,等空閒的時候在一個一個深入研究,然後再整理成文章後分享出來。

開始進入正題,提到slider,過去一直都是用css js來配合實作相關的切換效果。聽過大家一直討論使用html5 css3的實現方式,自己卻一直沒有動手實現過。好吧,這次我有時間來玩下css3了。其實,我也是被微博上的一則訊息給吸引過來的,看到別人實現的效果很贊,然後自己就有了動手做一把的衝動。
一、效果圖
 
跟過去用js來實現的效果看上去差不了太多,但是整體感覺很優雅。好吧,css3的強大之處在於,我寫了很少的程式碼,就實現了比較複雜的效果。但這個範例也有不太完美的地方,就是在兩張圖片切換的時候,如果中間間隔有圖片,那麼在css3動畫的執行過程中還是會看到,比較不給力。不過想想,這可是純css3來實現的效果啊,用js來實現的複雜的html結構變動在這裡可看不到,所以上面的效果很難簡單用css3來實現。
二、html結構 

複製程式碼
複製程式碼


程式碼>

























上面的程式碼是主要的html結構,其中包含了一個input radio群組,你可以在這裡它看做一個中樞,本實例中它起到了很關鍵的作用(這也是為什麼我在示例中不願將它隱藏起來,真正的英雄不應該是幕後的英雄)。
下面的sliders中包含了需要展現的images,這裡好像是一個滑動門的效果,透過控制inner的margin-left來展現不同的image。

controls是圖片左右兩邊的切換箭頭,先不要著急為什麼要設計5個,看上去只要兩個就可以了啊,提醒下,我們本例中絕不使用js來實現切換。
最後的active是圖片下方的點擊小按鈕,可以點選直接選擇要瀏覽的圖片,你也可以豐富裡面的結構來設計一個縮圖的效果。
三、css樣式表

複製程式碼
複製程式碼


碼🎜>
@charset utf-8;
/* common */
body{background: #ddd;overflow-x: hidden;}
#bd{width: 960px;margin: 100px auto ;max-width: 960px;}
/* module: sliders */
#sliders{
border-radius: 5px;
box-shadow: 1px 1px 4px #666; : 1%;
background: #fff;
}
#overflow{
width: 100%;
overflow: hidden;
}
#sliders .inflow. 🎜>width: 500%;
transiton: all 1s linear;
-webkit-transition: all 1s linear;
}
#sliders article{
floleft; : 20%;
}
#sliders article .info{
position: absolute;
opacity: 0;
padding: 30px;
color: #666; -family: Arial;
transition: opacity 0.1s ease-out;
-webkit-transform: translateZ(0);
-webkit-transition: opacity 0.1s ease-out;
}
}
#sliders article .info h1{
font-size: 22px;
font-weight: bold;
margin: 0 0 5px;
}
#sliders artle .
color: #666;
text-decoration: none;
}
/* module: controls */
#controls{
height: 50px;
#controls{
height: 50px;
width: 1000 %;
margin-top: -25%;
}
#controls label{
display: none;
width: 50px;
height: 50px;
opity: 0.3;
cursor: pointer;
}
#controls label:hover{
opacity: 1;
}
/* module: active *#🎜>active{
width: 100%;
margin-top: 23%;
text-align: center;
}
#active label{
display: inline-block; : 10px;
height: 10px;
border-radius: 5px;
background: #bbb;
border-color: #777;
}

background: #ccc;
}
/* input checked change style */
#slider1:checked ~ #active label:nth-child(1),
#slider2:checked ~ #active label:nth-child(2),
#slider3:checked ~ #active label:nth-child(3),
#slider4:checked ~ #active label:nth-child(4),
#slider5:checked ~ #active label:nth-child(5){
background: #333;
}
#slider1:checked ~ #controls label:nth-child(5),
#slider2:checked ~ #controls label:nth-child(1),
#slider3:checked ~ #controls label:nth-child(2),
#slider4:checked ~ #controls label:nth -child(3),
#slider5:checked ~ #controls label:nth-child(4){
display: block;
float: left;
background: url(../img /prev.png) no-repeat;
margin-left: -70px;
}
#slider1:checked ~ #controls label:nth-child(2),
#slider2:checked ~ #controls label:nth-child(3),
#slider3:checked ~ #controls label:nth-child(4),
#slider4:checked ~ #controls label:nth-child(5),
#slider5:checked ~ #controls label:nth-child(1){
display: block;
float: right;
background: url(../img/next.png) no- repeat;
margin-right: -70px;
}
#slider1:checked ~ #sliders article:nth-child(1) .info,
#slider2:checked ~ #sliders(1) .info,
#slider2:checked ~ #sliders article:nth -child(2) .info,
#slider3:checked ~ #sliders article:nth-child(3) .info,
#slider4:checked ~ #sliders article:nth-child(4) .info,
#slider5:checked ~ #sliders article:nth-child(5) .info{
opacity: 1;
transition: all 0.6s ease-out 1s;
-webkit-transition: all 0.6s ease-out 1s;
}
#slider1:checked ~ #sliders .inner{
margin-left: 0;
}
#slider2:checked ~ #sliders .inner{
margin-left: -100%;
}
#slider3:checked ~ #sliders .inner{
margin-left: -200%;
}
#slider4:checked ~ #sliders .inner{
margin-left: -300%;
}
#slider5:checked ~ #sliders .inner{
margin-left: -400%;
}

好吧,我承認上面的css程式碼真的比較多,比較複雜,可是它真的實現了非常炫的效果,而且我寫完的時候也被css3的巨大魔力折服了。 。 。
這裡面前半部的程式碼主要用來設計slider的結構,包括一些圓角、陰影方面的美化設計。後半部主要是一些動畫效果,來實現一些切換圖片或是控制按鈕切換時候的動態效果。但是,最主要的是最下面的css3選擇器的使用,透過它真正實現了圖片切換的功能。我真的認為選擇器在範例裡起到了非常非常重要的作用,因為這是我過去學習css3所忽略的知識。一直覺得css3強大的是圓角、陰影,是變形、動畫,但這段程式碼真的告訴我們選擇器在css3有多麼重要。在一些複雜的邏輯中,使用這些css3選擇器可以達到令人無法想像的效果。
四、slider實現的原理
第一次看完上面的程式碼的時候,你一定跟我當初一樣,不相信這樣的程式碼可以實現slider的效果。
好吧,我來分析下實現的原理吧。
我在上文中說過,最上面的那個radio組很重要,是slider實現的樞紐。沒錯,它真的是。
要實現一個slider,無非要實現兩種切換,就是點擊控制按鈕的時候,圖片切換;同時,圖片切換的時候,確保所有的控制按鈕正確顯示。
本例中我們使用label作為控制按鈕,article包含圖片,而inner作為圖片的容器。
簡單的想,label和article怎麼也建立不起來聯繫,label的狀態資訊很難反映到article的選擇上去。除非有東西可以把label的切換狀態記錄下來,然後用某種手段來選擇對應次序的圖片來顯示。
好吧,現在,你明白了為什麼那個radio群組是實作slider的關鍵了吧。對,它的出現就是為了記錄label的點擊狀態。
我們透過label的for屬性將它與對應的radio對應起來,當label點擊的時候,對應的radio就變成了checked的狀態。然後透過強大的css3選擇器將inner向左移動,讓對應的圖片顯示出來。當然,對應的左右選擇按鈕也是透過選擇器來顯示的。同樣的道理,左右按鈕點擊時,下方5個選擇按鈕的狀態也是這樣實現的。
上面的實作原理比較簡單吧,其實只要可以記錄下控制按鈕的點擊狀態,透過選擇器就可以實現slider的效果。
不只radio組可以,a:hover也可以按照這樣的思路來實現a在hover的時候實現圖片切換。當然還有其他多種實現方式,只要你明白實現的原理。
五、總結
其實css3真的很好玩,很多效果,在css3中,只有想不到,沒有做不到。有時候真的發現,寫css3是需要一點點小聰明的,有時候一些精妙的實現方式真的讓人讚不絕口。
好吧,作為一個小實踐,這個示例給我的收穫還是很多的,尤其是強大的選擇器,讓我汗顏了,過去太忽視了。 。 。
不連續圖片切換的問題,我還要考慮考慮,看來必須要用一點js來輔助了。
好吧,有結果了再分享出來。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

小米14Ultra如何切換4g和5g? 小米14Ultra如何切換4g和5g? Feb 23, 2024 am 11:49 AM

小米14Ultra是今年小米中非常火熱的機型之一,小米14Ultra不僅升級了處理器以及各種配置,而且還為用戶們帶來了很多新的功能應用,從小米14Ultra銷售就可以看出來手機的火爆程度,不過有一些常用的功能可能你還沒了解。那麼小米14Ultra如何切換4g和5g呢?下面小編就來為大家介紹一下具體的內容吧!小米14Ultra怎麼換4g和5g? 1.打開手機的設定選單。 2、設定選單中尋找並選擇「網路」、「行動網路」的選項。 3.在行動網路設定中,會看到「首選網路類型」選項。 4、點選或選擇該選項,會看到

win11家庭版切換專業版操作教學_win11家庭版切換專業版操作教學 win11家庭版切換專業版操作教學_win11家庭版切換專業版操作教學 Mar 20, 2024 pm 01:58 PM

Win11家庭版怎麼轉換成Win11專業版?在Win11系統中,分為了家庭版、專業版、企業版等,而大部分Win11筆電都是預先安裝Win11家用版系統。而今天小編就帶給大家win11家庭版切換專業版操作步驟!1、先在win11桌面此電腦上右鍵屬性。 2、點選更改產品金鑰或升級windows。 3、然後進入後點選更改產品金鑰。 4.再輸入啟動金鑰:8G7XN-V7YWC-W8RPC-V73KB-YWRDB,選擇下一步。 5.接著就會提示成功,這樣就可以將win11家用版升級win11專業版了。

Win10系統如何實現雙系統切換 Win10系統如何實現雙系統切換 Jan 03, 2024 pm 05:41 PM

很多朋友剛接觸win系統的時候可能用不習慣,電腦裡存雙系統,這時候其實是可以雙系統切換的,下面就一起來看看兩個系統切換的詳細步驟吧。 win10系統如何兩個系統切換方法一、快捷鍵切換1、按下“win”+“R”鍵開啟運行2、在運行框中輸入“msconfig”點擊“確定”3、在打開的“系統配置”介面中選擇自己需要的系統點擊“設為預設值”,完成後“重新啟動”即可完成切換方法二、開機時選擇切換1、擁有雙系統時開機會出現一個選擇操作介面,可以使用鍵盤“上下”鍵進行選擇系統

切換蘋果電腦雙系統啟動方式 切換蘋果電腦雙系統啟動方式 Feb 19, 2024 pm 06:50 PM

蘋果雙系統開機怎麼切換蘋果電腦作為一款功能強大的設備,除了搭載自家的macOS作業系統外,也可以選擇安裝其他作業系統,例如Windows,從而實現雙系統的切換。那麼在開機時,我們要如何切換這兩個系統呢?本文就來為大家介紹一下在蘋果電腦上如何實現雙系統的切換。首先,在安裝雙系統之前,我們需要確認自己的蘋果電腦是否支援雙系統切換。一般來說,蘋果電腦都是基於

excel切換工作簿快速鍵的使用方法 excel切換工作簿快速鍵的使用方法 Mar 20, 2024 pm 01:50 PM

在excel軟體的應用程式裡,我們已經習慣使用快捷鍵,讓有些操作變得更簡單和快捷,excel的多個表格之間有時候會有相關的數據,我們在查看時,要不停的切換工作簿,如果有更快捷的切換方法,就會省下很多切換浪費的時間,對工作效率的提高有很大的幫助,什麼辦法可以完成快速的切換呢,針對這個問題,小編今天要講的內容是:excel切換工作簿快速鍵的使用方法。 1.首先在開啟的excel表格的下方可以看到有多個工作簿,需要快速切換不同的工作簿,如下圖所示。  2、然後按下鍵盤上的Ctrl鍵不動,如果需要向右選擇工作

無法使用win11的alt+tab切換介面,出現的原因是什麼? 無法使用win11的alt+tab切換介面,出現的原因是什麼? Jan 02, 2024 am 08:35 AM

win11支援使用者使用alt+tab快捷鍵的方式來調出桌面切換工具,但是最近有朋友遇到了win11alt+tab切換不了介面的問題,不知道是什麼原因也不知道怎麼解決。 win11alt+tab切換不了介面什麼原因:答:因為快捷鍵功能被停用了,以下是解決方法:1、首先我們按下鍵盤「win+r」開啟運作。 2、接著輸入「regedit」並回車打開群組原則。 3.然後進入“HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer”

如何在華為手機上切換雙系統設定 如何在華為手機上切換雙系統設定 Feb 20, 2024 am 10:09 AM

隨著智慧型手機的迅速發展,華為作為一家領先的科技公司,推出了許多備受歡迎的手機產品。其中,華為雙系統是一項讓許多用戶感到興奮的功能。透過華為雙系統,使用者可以在同一台手機上同時運行兩個作業系統,例如Android和HarmonyOS。這個功能可以帶來更大的靈活性和便利性。那麼,華為雙系統如何切換設定?讓我們來一起了解一下。首先,在華為手機上切換到雙系統設定之前,

認識全角與半角:切換技巧一覽 認識全角與半角:切換技巧一覽 Mar 25, 2024 pm 01:36 PM

在日常生活中,我們經常會遇到全角和半角的問題,但可能很少有人深入了解它們的意義和差異。全角和半角,其實是一種字元編碼方式的概念,而在電腦輸入、編輯、排版等方面都有其特殊的應用。本文將深入探討全角和半角的差異、切換技巧以及在實際生活中的應用。首先,全角和半角在漢字文字領域中的定義是:一個全角字元佔用一個字元位置,而一個半角字元佔用半個字元位置。在計算機中,通

See all articles