JavaScript實現(xiàn)圖片切換效果
更新時間:2021年04月29日 15:02:15 作者:Candice_L
這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)圖片切換效果,以及自定義屬性的應用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了JavaScript實現(xiàn)圖片切換效果,自定義屬性的應用 供大家參考,具體內(nèi)容如下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>圖片切換實例</title>
<style>
body{
background-color: #A9A9A9;
margin:0px;
}
ul{
padding: 0;
margin: 0;
}
li{
list-style: none;
}
#pic{
width:670px;
height: 420px;
position:relative;
margin: 0 auto;/*整個div放到頁面中間的位置*/
background:url(img/loading.png) no-repeat center;
background-color:#fff;
}
#pic img{
width:670px;
height: 420px;
}
#pic ul{
position: absolute;
top: 0px;
right: -50px;
}
#pic li{
width:40px;
height:40px;
margin-bottom: 4px;
background:#666;
}
#pic .active{
background: cadetblue;
}
#pic span{
top:0px;
}
#pic p{
bottom:0px;
margin:0;
}
#pic p,#pic span{
width: 670px;
height: 30px;
line-height: 30px;
text-align: center;
position:absolute;
left:0px;
color:#fff;
background-color:#333;
}
</style>
<script>
window.onload = function(){
var oDiv = document.getElementById("pic");
var oImg = document.getElementsByTagName("img")[0];//有tag標簽的地方就得有數(shù)組[0],否則不提示錯誤,但卻會加載不出來需要的內(nèi)容。
var oP = document.getElementsByTagName("p")[0];
var oNum = document.getElementsByTagName("span")[0];
var oUl = document.getElementsByTagName("ul")[0];
var aLi = oUl.getElementsByTagName("li");//通過父標簽找到的子標簽,這里不能加數(shù)組[0]
var arrUrl = ["img/1.jpg","img/2.jpg","img/3.jpg","img/4.jpg","img/5.png"];
var arrText = ["中原工學院圖書館","中工宿舍樓","玫瑰花","小貓咪","綠色盆栽"];
for(var i=0;i<arrUrl.length;i++){
oUl.innerHTML += "<li></li>";//添加用“+=”,該寫用“=”
}
//初始化
//有數(shù)組的地方,大部分都有一個數(shù)字在靜靜的等待.數(shù)組配合數(shù)字以便找到需要的內(nèi)容。
var num = 0;
oImg.src = arrUrl[num];
oP.innerHTML = arrText[num];
oNum.innerHTML = 1+num+'/'+arrUrl.length;
//在ul中添加li,根據(jù)數(shù)組的長度,為ul添加li的數(shù)量
aLi[num].className = "active";//為標簽添加class屬性,需要用到className
for(i=0;i<aLi.length;i++){
aLi[i].index = i;//索引值,需要添加對應關系,就要想到添加索引值
//定義的有數(shù)組,就不能忘記加[0]
aLi[i].onclick = function(){
//點擊按鈕,找到與之對應的圖片
oImg.src = arrUrl[this.index];
oP.innerHTML = arrText[this.index];
oNum.innerHTML = 1+this.index+'/'+arrUrl.length;
//添加對應的點擊時,li的圖標發(fā)生變化,兩種思路
//思路1:清空當前所有active樣式,為當前添加此class屬性(擴展性好,但是運行速度可能不好)
for(var i=0; i<aLi.length; i++){
aLi[i].className = "";
}
this.className = "active";
//思路2:清空前一個點擊li的樣式,為當前添加class屬性(定點清除)
}
}
}
</script>
</head>
<body>
<div id="pic" >
<img src=""/>
<span>數(shù)量正在加載中......</span>
<p>文字說明正在加載中......</p>
<ul>
</ul>
</div>
</body>
</html>
JavaScript代碼片段可以簡化成如下:
<script>
window.onload = function(){
var oDiv = document.getElementById("pic");
var oImg = document.getElementsByTagName("img")[0];
var oP = document.getElementsByTagName("p")[0];
var oNum = document.getElementsByTagName("span")[0];
var oUl = document.getElementsByTagName("ul")[0];
var aLi = oUl.getElementsByTagName("li");
var arrUrl = ["img/1.jpg","img/2.jpg","img/3.jpg","img/4.jpg","img/5.png"];
var arrText = ["中原工學院圖書館","中工宿舍樓","玫瑰花","小貓咪","綠色盆栽"];
for(var i=0;i<arrUrl.length;i++){
oUl.innerHTML += "<li></li>";
}
//初始化
var num = 0;
function fnTab(){
oImg.src = arrUrl[num];
oP.innerHTML = arrText[num];
oNum.innerHTML = 1+num+'/'+arrUrl.length;
aLi[num].className = "";
}
fnTab();
for(i=0;i<aLi.length;i++){
aLi[i].index = i;
aLi[i].onclick = function(){
num = this.index;
fnTab();
}
aLi[num].className = "active";
}
}
}
</script>
效果圖:

不會做動圖!明天再試試!
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Javascript設計模式理論與編程實戰(zhàn)之簡單工廠模式
簡單工廠模式是由一個方法來決定到底要創(chuàng)建哪個類的實例, 而這些實例經(jīng)常都擁有相同的接口. 這種模式主要用在所實例化的類型在編譯期并不能確定, 而是在執(zhí)行期決定的情況。 說的通俗點,就像公司茶水間的飲料機,要咖啡還是牛奶取決于你按哪個按鈕2015-11-11
JavaScript獲得url所有參數(shù)鍵值表的方法
這篇文章主要介紹了JavaScript獲得url所有參數(shù)鍵值表的方法,實例分析了javascript操作URL的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03
JavaScript調(diào)用ajax獲取文本文件內(nèi)容實現(xiàn)代碼
這篇文章主要介紹了JavaScript調(diào)用ajax獲取文本文件內(nèi)容的方法,需要的朋友可以參考下2014-03-03
JavaScript保留兩位小數(shù)的2個自定義函數(shù)
這篇文章主要介紹了JavaScript保留兩位小數(shù)的2個自定義函數(shù),需要的朋友可以參考下2014-05-05
一步快速解決微信小程序中textarea層級太高遮擋其他組件
這篇文章主要給大家介紹了關于如何通過一步快速解決微信小程序中textarea層級太高遮擋其他組件問題的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-03-03

