JavaScript實現(xiàn)左右點擊切換圖片
更新時間:2022年07月12日 09:03:28 作者:疑似忘川落九天
這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)簡易左右點擊切換圖片,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了JavaScript實現(xiàn)左右點擊切換圖片的具體代碼,供大家參考,具體內(nèi)容如下
效果:
HTML
<!DOCTYPE html> <html> ? ? <head> ? ? ? ? <meta charset="utf-8"> ? ? ? ? <title>xxx——空間相冊</title> ? ? ? ? <link rel="stylesheet" type="text/css" href="./css/Photo_album.css"/> ? ? </head> ? ? <body> ? ? ? ? <!-- 相冊 --> ? ? ? ? <div id="imgmax"> ? ? ? ? ? ? <ul> ? ? ? ? ? ? ? ? <li><img src="./img/brtx.jpeg" ></li> ? ? ? ? ? ? ? ? <li><img src="./img/1.jpeg" ></li> ? ? ? ? ? ? ? ? <li><img src="./img/2.jpeg" ></li> ? ? ? ? ? ? ? ? <li><img src="./img/3.jpeg" ></li> ? ? ? ? ? ? ? ? <li><img src="./img/brtx.jpeg" ></li> ? ? ? ? ? ? ? ? <li><img src="./img/brtx.jpeg" ></li> ? ? ? ? ? ? </ul> ? ? ? ? </div> ? ? </body> ? ? <script src="js/Photo_album.js" type="text/javascript" charset="utf-8"></script> </html>
CSS:
/* 相冊 */ #imgmax{ ? ? width: 600px; ? ? height: 600px; ? ? position: relative; ? ? margin: 20px auto; ? ?? ? ?? } img{ ? ? width: 100%; ? ? height: 100%; } ui,li{ ? ? margin: 0; ? ? padding: 0; ? ? list-style: none; ? ? float: left; ? ? width: 150px; ? ? height: 150px; ? ? margin-left: 10px; } .newdiv{ ? ? width: 600px; ? ? height: 600px; ? ? background: #fff; ? ? opacity: 0.5; } .newimg{ ? ? width: 300px; ? ? height: 300px; ? ? position: absolute; ? ? left: 150px; ? ? top: 50px; } .newspan{ ? ? position: absolute; ? ? width: 20px; ? ? height: 20px; ? ? left: 450px; ? ? top: 50px; ? ? background: #fff; ? ? text-align: center; } .newspanzuo{ ? ? position: absolute; ? ? width: 20px; ? ? height: 20px; ? ? left: 100px; ? ? top: 150px; ? ? background: #fff; ? ? text-align: center; } ? .newspanyou{ ? ? position: absolute; ? ? width: 20px; ? ? height: 20px; ? ? left: 480px; ? ? top: 150px; ? ? background: #fff; ? ? text-align: center; }
JavaScript:
/* 說明:根據(jù)<1i>標簽、得到當前網(wǎng)頁所有的<1i>元素返回值:返回的是數(shù)組,存儲所有的<1i>元素 作用: 1.可用于監(jiān)聽點擊事件 2.可根據(jù)當前<1i>元素得到內(nèi)部存儲的圖片路徑 3.可根據(jù)圖片的路勁,做一個大圖展示 */ var lis = document.getElementsByTagName("li"); //獲取li標簽 /* 說明:根據(jù)id,得到imgmax元素 返回值:返回的是最大的盒子元素 作用: 可像此盒子內(nèi)【追用】預(yù)覽圖片時所需的所有【元素】 1.追加盒子元素(用于遮蓋當前所有圖片) 2.追加圖片元素(用于展示【預(yù)覽圖】) 3.追加span文字(用于展示“X”,退出預(yù)覽) */ var box = document.getElementById("imgmax"); //獲取相冊盒子 var index = 0; //循環(huán)遍歷li標簽 //迭代所有的【li】,用于監(jiān)聽【li】的點擊事件 for (let i = 0; i < lis.length; i++) { ?? ?/* ?? ?當監(jiān)聽成功,綁定【匿名函數(shù)】,用于編寫具體的邏輯 ?? ?1.得到當前點擊<li>元素的圖片路徑 ?? ?2.創(chuàng)建:div元素,用于遮蓋當前所有圖片 ?? ?3.創(chuàng)建:img元素,用于展示【預(yù)覽圖】 ?? ?4.創(chuàng)建 span元素(用于展示“X”,退出預(yù)覽) ?? ?*/ ?? ?lis[i].onclick = function() { ?? ??? ?//彈出當前l(fā)i標簽中圖片路徑 ?? ??? ?//alert(this.getElementsByTagName("img")[0].src) ?? ??? ?//2.創(chuàng)建:div元素,用于遮蓋當前所有圖片 ?? ??? ?// box.appendChild() ?? ??? ?var j = i; ?? ??? ?var newDiv = document.createElement('div'); ?? ??? ?newDiv.className = "newdiv"; ?? ??? ?box.appendChild(newDiv) ?? ??? ? ?? ??? ?//3.創(chuàng)建:img元素,用于展示【預(yù)覽圖】 ?? ??? ?var newImg = document.createElement("img"); ?? ??? ?newImg.className = "newimg" ?? ??? ?newImg.src=this.getElementsByTagName("img")[0].src ?? ??? ?box.appendChild(newImg); ?? ??? ?//創(chuàng)建 span元素(用于展示“X”,退出預(yù)覽) ?? ??? ?var newSpan = document.createElement("span"); ?? ??? ?newSpan.innerHTML = "X"; ?? ??? ?newSpan.className = "newspan"; ?? ??? ?box.appendChild(newSpan); ?? ??? ?newSpan.onclick = function(){ ?? ??? ??? ?box.removeChild(newDiv); ?? ??? ??? ?box.removeChild(newImg); ?? ??? ??? ?box.removeChild(Spanz); ?? ??? ??? ?box.removeChild(Spany); ?? ??? ??? ?box.removeChild(newSpan); ? ?? ??? ?} ?? ??? ? ?? ??? ?// 左邊 ?? ??? ?var Spanz = document.createElement("span"); ?? ??? ?Spanz.innerHTML = "<"; ?? ??? ?Spanz.className = "newspanzuo"; ?? ??? ?box.appendChild(Spanz); ?? ??? ?Spanz.onclick = function(){ ?? ??? ??? ?if (j-->=0) { ?? ??? ??? ??? ?newImg.src=document.getElementsByTagName("img")[j].src ?? ??? ??? ?} else{ ?? ??? ??? ??? ?alert("已經(jīng)是第一張了!!") ?? ??? ??? ?} ?? ??? ?} ?? ??? ? ?? ??? ?// 右邊 ?? ??? ?var Spany = document.createElement("span"); ?? ??? ?Spany.innerHTML = ">"; ?? ??? ?Spany.className = "newspanyou"; ?? ??? ?box.appendChild(Spany); ?? ??? ?Spany.onclick = function(){ ?? ??? ?if (j++<lis.length-1) { ?? ??? ??? ?newImg.src=document.getElementsByTagName("img")[j].src ?? ??? ?} else{ ?? ??? ??? ?alert("已經(jīng)是第最后一張了??!") ?? ??? ?} ?? ??? ?} ?? ?} }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- js實現(xiàn)點擊切換TAB標簽實例
- Vue.js點擊切換按鈕改變內(nèi)容的實例講解
- JS實現(xiàn)的簡單標簽點擊切換功能示例
- 簡單純js實現(xiàn)點擊切換TAB標簽實例
- 原生JS實現(xiàn)隱藏顯示圖片 JS實現(xiàn)點擊切換圖片效果
- jquery插件jquery.LightBox.js實現(xiàn)點擊放大圖片并左右點擊切換效果(附demo源碼下載)
- js實現(xiàn)點擊切換checkbox背景圖片的簡單實例
- JavaScript實現(xiàn)的簡單Tab點擊切換功能示例
- JavaScript實現(xiàn)點擊切換功能
- JavaScript 實現(xiàn) Tab 點擊切換實例代碼
相關(guān)文章
JavaScript數(shù)值數(shù)組排序示例分享
在Javascript中我們已知有兩個可以直接用來進行數(shù)組排序的方法reverse()和sort()。其中reverse()是按照反向?qū)τ跀?shù)組進行排序的,而sort()是按照正向進行排序的。2014-05-05