實現簡單的輪播圖(單張圖片、多張圖片)
前言
剛學js沒多久,這篇部落格就當做記錄了,以後還會完善的,希望大佬們多多指點。ps:下面出現的都是直接閃動,沒有滑動效果的輪播圖。
單張圖片的替換
原理
1.將幾張圖片疊在一起,通過改變"display:block"和"display:none"這兩個屬性實現替換。 (前提:在css中給所有圖片加上display:none屬性)
2.不用將圖片疊在一起,將一個div當做"視窗",通過"offset(height/top/width/left)"屬性獲取圖片的
(高/到頂部距離/寬/到左邊距離/到右邊距離),再通過事件更改相應的屬性,讓圖片在"視窗"內整體移動。
樣例一
//
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();//執行移動函式來實現效果
}
}
多張圖片的替換(一次動一張)
多張圖片的替換其實和單張圖片的原理二是一樣的,只不過要稍稍做一點變化。↓
相關文章
- 安卓之viewPager簡單用法圖片輪播安卓Viewpager
- 單張圖片懶載入
- web前端入門到實戰:簡單的圖片輪播Web前端
- Spring Boot MVC 單張圖片和多張圖片上傳 和通用檔案下載Spring BootMVC
- 圖片輪播元件實現元件
- 分享cropper剪下單張圖片demo
- android圖片輪播效果,RollViewPager的簡單使用AndroidViewpager
- (轉)jquery實現圖片輪播jQuery
- js:原生多張圖片延遲載入(圖片自己找)JS
- iOS 相簿選中多張圖片iOS
- Vue封裝Swiper實現圖片輪播Vue封裝
- 用原生js實現圖片輪播器JS
- 高效圖片輪播,兩個ImageView實現View
- 無需下載軟體怎麼將多張圖片組合成一張圖片
- win10如何填充多張圖片 win10桌面填充多張圖片怎麼設定Win10
- iOS載入單張圖片導致崩潰的分析iOS
- JQuery實現圖片輪播無縫滾動jQuery
- vue + 原生input 框上傳多張圖片Vue
- 阿里雲上傳多張圖片阿里
- CSS將背景圖片集中在一張圖片上CSS
- iOS 簡單實現帶圖片的LabeliOS
- 高階切圖技巧!基於單張圖片的任意顏色轉換
- 圖片輪播--純cssCSS
- HTML5利用canvas,把多張圖合併成一張圖片HTMLCanvas
- jQuery Mobile圖片輪轉輪播jQuery
- 利用回撥函式實現簡單的輪播圖效果函式
- jQuery實現3D圖片輪播詳解jQuery3D
- 用原生JS實現 圖片輪播切換 功能JS
- Android儲存多張圖片到本地Android
- java生成一張圖片Java
- 一個基於Vue的圖片輪播元件的實現Vue元件
- php單張圖片上傳外掛免重新整理,相容手機,可實現類似微信圖片上傳的體驗PHP
- iOS無限輪播圖片iOS
- 攻防世界-簡單的圖片
- 用canvas實現一個自動識別兩張圖片差異(圖片找不同)的功能Canvas
- 文字輪播與圖片輪播?CSS 不在話下CSS
- 使用jpeg圖片庫,顯示圖片並簡單實現LCD的觸屏功能
- jquery實現的圖片預載入簡單介紹jQuery