實現簡單的輪播圖(單張圖片、多張圖片)
前言
剛學js沒多久,這篇部落格就當做記錄了,以後還會完善的,希望大佬們多多指點。ps:下面出現的都是直接閃動,沒有滑動效果的輪播圖。
單張圖片的替換
原理
1.將幾張圖片疊在一起,通過改變"display:block"和"display:none"這兩個屬性實現替換。 (前提:在css中給所有圖片加上display:none屬性)
2.不用將圖片疊在一起,將一個div當做"視窗",通過"offset(height/top/width/left/right)"屬性獲取圖片的
(高/到頂部距離/寬/到左邊距離/到右邊距離),再通過事件更改相應的屬性,讓圖片在"視窗"內整體移動。
樣例一
//
window.onload = function () {//頁面載入時啟用函式
Carouselfigure();//函式名可任意
};
function Carouselfigure() {
var next = document.getElementsByClassName("right")[0];//點選切換下一張的按鈕
var prev = document.getElementsByClassName("left")[0];//點選切換上一張的按鈕
var img = document
.getElementsByClassName("innerbox")[0]
.getElementsByTagName("img");//獲取圖片陣列
var index = 0;//定義一個函式做工具人,“index”可改為任意名稱
img[0].style.display = "block";//使頁面載入後第一張圖片顯示
next.onclick = function () {//繫結切換下一張圖片的點選事件
img[index].style.display = "none";//隱藏當前圖片
if ((index == 3)) {//if語句使其迴圈
index = 0;
} else {
index++;//通過index的切換實現圖片的切換
}
img[index].style.display = "block";//顯示圖片
};
prev.onclick = function () {//繫結切換上一張圖片的點選事件
img[index].style.display = "none";//隱藏當前圖片
if ((index == 0)) {//if語句使其迴圈
index = 3;
} else {
index--;//通過index的切換實現圖片的切換
}
img[index].style.display = "block";//顯示圖片
};
}
樣例二
//html
<body>
<div class="button">
<div class="left"></div>
<div class="right"></div>
</div>
<div class="allbox">
<div class="outbox">
<div class="innerbox">//用來移動的div
<img src="1.jpg">
<img src="2.jpg">
<img src="3.jpg">
<img src="4.jpg">
</div>
</div>
</div>
</body>
//css
*{
margin: 0;
padding: 0;
}
.allbox{
display: flex;
justify-content: center;
width: 100%;
margin-top: 50px;
height: 300px;
}
.outbox {
position: relative;
height: 300px;
width: 25%;
overflow: hidden;//使溢位div的圖片隱藏
}
.innerbox {
position: absolute;
display: flex;//讓圖片橫向排列
width:100%;
}
.innerbox img {
width: 100%;
height: 300px;
}
.button{
position: relative;
display: flex;
justify-content: center;
}
.left{
width: 50px;
height: 50px;
background-color:red ;
cursor: pointer;
}
.right{
width: 50px;
height: 50px;
background-color: black;
cursor: pointer;
}
//js
window.onload = function () {
Carouselfigure();
};
function Carouselfigure() {
var next = document.getElementsByClassName("right")[0];
var prev = document.getElementsByClassName("left")[0];
var innerbox = document.getElementsByClassName("innerbox")[0];
var img = document
.getElementsByClassName("innerbox")[0]
.getElementsByTagName("img");
var index = 0;
function move() {//設定該函式為移動函式
innerbox.style.left = -img[0].offsetWidth * index + 'px';
//offsetWidth用來獲取圖片的寬度,由於這幾張圖片的寬度相同,取任意一張的寬度都可,故選用陣列中的0.負號是因為改變的是left的值,為了按圖片順序從左到右,才使用負號(可自行更換)。
}
next.onclick = function () {
if (index == 3) {
index = 0;
}
else { index++; }
move();//執行移動函式來實現效果
}
prev.onclick = function () {
if (index == 0) {
index = 3;
}
else { index--; }
move();//執行移動函式來實現效果
}
}
多張圖片的替換(一次動一張)
多張圖片的替換其實和單張圖片的原理二是一樣的,只不過要稍稍做一點變化。↓
相關文章
- 單張圖片懶載入
- Spring Boot MVC 單張圖片和多張圖片上傳 和通用檔案下載Spring BootMVC
- 分享cropper剪下單張圖片demo
- 安卓之viewPager簡單用法圖片輪播安卓Viewpager
- web前端入門到實戰:簡單的圖片輪播Web前端
- bugku的圖片隱寫1 這是一張單純的圖片
- JS—圖片壓縮上傳(單張)JS
- PHP GD庫解析一張簡單圖片並輸出PHP
- js:原生多張圖片延遲載入(圖片自己找)JS
- 無需下載軟體怎麼將多張圖片組合成一張圖片
- 用原生js實現圖片輪播器JS
- HTML5利用canvas,把多張圖合併成一張圖片HTMLCanvas
- 圖片輪播--純cssCSS
- vue + 原生input 框上傳多張圖片Vue
- 大頭針顯示多張圖片
- Android儲存多張圖片到本地Android
- JQuery實現圖片輪播無縫滾動jQuery
- win10如何填充多張圖片 win10桌面填充多張圖片怎麼設定Win10
- 高階切圖技巧!基於單張圖片的任意顏色轉換
- 攻防世界-簡單的圖片
- 輕鬆復現一張AI圖片AI
- 使用jpeg圖片庫,顯示圖片並簡單實現LCD的觸屏功能
- 原生JS實現輪播圖--第一章圖片展示JS
- java學習---前端---使用JavaScript和jQuery實現圖片輪播圖前端JavaScriptjQuery
- Android 和 iOS 圖片輪播AndroidiOS
- 利用回撥函式實現簡單的輪播圖效果函式
- jQuery實現3D圖片輪播詳解jQuery3D
- 用原生JS實現 圖片輪播切換 功能JS
- 23.Quick QML-簡單且好看的圖片瀏覽器-支援多個圖片瀏覽、縮放、旋轉、滑輪切換圖片UI瀏覽器
- 利用Python講多張圖片合成PDF檔案Python
- 一個基於Vue的圖片輪播元件的實現Vue元件
- 圖形影像處理之簡單圖片
- 用canvas實現一個自動識別兩張圖片差異(圖片找不同)的功能Canvas
- ViewFlipper探索與使用——順便實現Android圖片輪播ViewAndroid
- 造輪子之圖片輪播元件(swiper)元件
- 文字輪播與圖片輪播?CSS 不在話下CSS
- 在python中將多張圖片合成為視訊Python
- 如何使用css3實現一個div設定多張背景圖片?CSSS3