原生JS实现点击按钮切换图片

本文介绍了一个使用HTML、CSS和JavaScript实现的动态图片切换效果,通过点击不同的按钮,可以改变图片源和显示的文本信息,同时更新图片下方的状态指示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >




<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>动态切换图片</title>
</head>
<style>
ul{
	padding:0;margin:0;
}
li{
	list-style: none;
}
#pic{
	position: relative;
	width: 400px;
	height: 400px;
	background-color:red;
	margin:100px auto;
	background:url('image/1.jpg') no-repeat center;
}
#pic img{
	width: 400px;
	height: 400px;
}
#pic ul{
	width: 50px;
	position: absolute;
	top: 0;
	right: -70px;

}
li{
	width: 40px;
	height: 40px;
	margin-bottom:10px;
	background-color: pink;
	float: left;
}
#pic span{ 
	
	position: absolute;
	bottom: 10px;
	left: 0;
}
#pic p,#pic span{
	width: 400px;
	height: 20px;
}
#pic p{
	position: absolute;
	top: 10px;
	left: 0;
}
.active{
	background-color: red;
}

</style>

<body>
<div id="pic">
<img src="" alt="">
<p>qwrwe</p>
<span>werwer</span>
<ul>
</ul>
</div>
<script>
window.onload=function(){
	//存放旧li
	var oldLi=null;
	var num=0;
	var oPic = document.getElementById('pic');
	var oImg = oPic.getElementsByTagName('img')[0];
	var oUL =  oPic.getElementsByTagName('ul')[0];
	var oSpan= oPic.getElementsByTagName('span')[0];
	var oP = oPic.getElementsByTagName('p')[0];
	var oLi= oUL.getElementsByTagName('li');
	var arr=['image/1.jpg','image/2.jpg','image/3.jpg','image/4.jpg'];
	var aText = ['图片1','图片2','图片3','图片4'];


	for(var i=0;i<arr.length;i++){
		//动态添加元素
		oUL.innerHTML+='<li></li>';
	}
	// 旧li就等于当前的
	oldLi=oLi[num];
	
	
	// 初始化
	oImg.src=arr[num];
	oP.innerHTML=num+1+'/'+arr.length;
	oSpan.innerHTML=aText[num];
	oLi[num].className='active';
	
	

	for(var i=0;i<arr.length;i++){
		// 给元素自定义属性
		// 
		oLi[i].index=i;
		oLi[i].onclick=function(){
			// 当元素被点击时图片文字信息都一起变化
			oImg.src=arr[this.index];
			oP.innerHTML=1+this.index+'/'+arr.length;
			oSpan.innerHTML=aText[this.index];
			// 清空上一个 当前添加
			oldLi.className='';
			//将上一个给当前
			oldLi=this;
			this.className='active';
		}
	}
}
</script>
</body>
</html>


页面展示效果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值