使用html5 css3來實作slider切換效果告別javascript css_html5教學技巧
好吧,上次說要趕緊的補上幾篇文章,結果淡定的失約了。又是近一個月才發一篇,真是讓人鬱悶。發現最近總是抽不出時間了,基本上都是一個專案接一個專案的安排,自己不是在空閒的時候找不到合適的話題,就是在有糾結話題的時候抽不出時間了。所以我決定一段時間內先把自己糾結過的問題先歸納下知識點,等空閒的時候在一個一個深入研究,然後再整理成文章後分享出來。
開始進入正題,提到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來輔助了。
好吧,有結果了再分享出來。

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

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

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

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

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

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

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

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

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