用原生JS实现 图片轮播切换 功能

本文介绍了如何使用原生JavaScript创建一个图片轮播切换功能。通过DOM操作和事件监听,实现了点击按钮或列表项来切换图片显示,并更新相关提示信息。示例代码详细展示了整个实现过程。
摘要由CSDN通过智能技术生成

效果如图:





代码如下:


<!DOCTYPE HTML>
<html>


<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>点点点切换</title>
<style>
ul {
padding: 0;
margin: 0;
}

li {
list-style: none;
}

body {
background: #333;
}

.pic {
width: 400px;
height: 500px;
position: relative;
margin: 0 auto;
background: url(img/loader_ico.gif) no-repeat center #fff;
}

.pic img {
width: 400px;
height: 500px;
}

.pic ul {
width: 40px;
position: absolute;
top: 0;
right: -50px;
}

.pic li {
width: 40px;
height: 40px;
margin-bottom: 4px;
background: #666;
}

.pic .active {
background: #FC3;
}

.pic span {
top: 0;
}

.pic p {
bottom: 0;
margin: 0;
}

.pic p,
.pic span {
position: absolute;
left: 0;
width: 400px;
height: 30px;
line-height: 30px;
text-align: center;
color: #fff;
background: #000;
}

.btn {
width: 24px;
height: 24px;
background: rgba(0, 0, 0, 0.5);
position: absolute;
top: 250px;
text-align: center;
line-height: 24px;
text-decoration: none;
color: #fff;
}

.pic .next {
right: 0;
}
</style>


</head>


<body>


<div id="pic" class="pic">
<img src="" />
<span>数量正在加载中……</span>
<p>文字说明正在加载中……</p>
<ul></ul>
<a href="javascript:;" class="btn next">></a>
<a href="javascript:;" class="btn prev"><</a>
</div>


<script>

var oDiv=document.getElementById("pic")
var oImg=oDiv.getElementsByTagName("img")[0]
var oSpan=oDiv.getElementsByTagName("span")[0]
var oP=oDiv.getElementsByTagName("p")[0]
var oUl=oDiv.getElementsByTagName("ul")[0]
var oLi=oUl.getElementsByTagName("li")
var oA=oDiv.getElementsByTagName("a")

/*定义数组begin*/
var num=0
var arrImg=["img/1.png","img/2.png","img/3.png","img/4.png"]
var arrTex=["图片1","图片2","图片3","图片4"]
/*定义数组end*/

/*初始化展示begin*/
oImg.src=arrImg[0]
oSpan.innerHTML=(num+1)+"/"+arrImg.length
oP.innerHTML=arrTex[0]
/*初始化展示end*/

/*点击下一张切换begin*/
oA[0].οnclick=function(){
num++
if(num>arrImg.length-1){
num=0
}
oImg.src=arrImg[num]
oSpan.innerHTML=(num+1)+"/"+arrImg.length
oP.innerHTML=arrTex[num]
for (var i=0;i<oLi.length;i++) {
oLi[i].className=""
}
oLi[num].className="active"

}
/*点击下一张切换end*/

/*点击上一张切换begin*/
oA[1].οnclick=function(){
num--
if(num<0){
num=arrImg.length-1
}
oImg.src=arrImg[num]
oSpan.innerHTML=(num+1)+"/"+arrImg.length
oP.innerHTML=arrTex[num]
for (var i=0;i<oLi.length;i++) {
oLi[i].className=""
}
oLi[num].className="active"

}
/*点击下一张切换end*/


/*for循环拼接生成li begin*/
for ( var i=0;i<arrImg.length;i++) {
oUl.innerHTML+="<li></li>"
}
/*for循环拼接生成li end*/

oLi[0].className="active"

/*点击当前li关联图片下标 begin*/
for ( var i=0;i<oLi.length;i++) {
oLi[i].index=i
oLi[i].οnclick=function(){
for ( var i=0;i<oLi.length;i++) {

oLi[i].className=""
}

this.className="active"
num=this.index
oImg.src=arrImg[num]
oSpan.innerHTML=(num+1)+"/"+arrImg.length
oP.innerHTML=arrTex[num]

}

}
/*点击当前li关联图片下标 begin*/


 
</script>
</body>


</html>

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值