ajax实现图片轮番滚动

思路:将图片的地址放在一个.json文件中,然后通过ajax去获取这个地址即可实现局部图片的刷新:

imgsrc.json:

[
	{
		"src": "img/flower.png"
	}, {
		"src": "img/jd.png"
	}, {
		"src": "img/tb.png"
	}
]

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<style>
		.container {
			width: 400px;
			height: 800px;
			margin: auto;
			//background-color: pink;
		}
		
		.imgdiv {
			width: 100%;
			height: 30%;
			background-color: pink;
		}
		
		.dotdiv {
			width: 100%;
			height: 10%;
			margin: auto;
			//background-color: palegoldenrod;
		}
		
		.main {
			width: 50%;
			height: 100%;
			margin-left: 25%;
			margin-right: 25%;
			//background-color: red;
		}
		
		img {
			width: 100%;
			height: 100%;
		}
		
		ul li {
			width: 50px;
			height: 20%;
			color: orange;
			float: left;
			list-style-type: circle;
		}
		
		.dot1 {
			width: 10px;
			height: 10px;
			background-color: wheat;
			border-radius: 50%;
			float: left;
			margin-left: 10%;
		}
		
		.dot {
			/*dot为选中的*/
			width: 10px;
			height: 10px;
			background-color: gray;
			border-radius: 50%;
			float: left;
			margin-left: 10%;
		}
	</style>

	<body>
		<div class="container">
			<div class="imgdiv">
				<img  id="tp" οnmοusemοve="over()"/>
			</div>
			<div class="dotdiv">
				<div class="main">
					<button class="dot" οnmοuseοver="click1(0)"></button>
					<button class="dot1" οnmοuseοver="click1(1)"></button>
					<button class="dot1" οnmοuseοver="click1(2)"></button>
				</div>
			</div>
		</div>
		<script>
			
			function over(){
				var img=document.getElementById("tp");
				//alert(img.src);
				img.alt=img.src;
			}
			//创建对象
			var xmlhttp;
			if(window.XMLHttpRequest) {
				xmlhttp = new XMLHttpRequest();
			} else {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			//回调函数
			var jon;
			xmlhttp.onreadystatechange = function() {
				if(xmlhttp.readyState == 4 && xmlhttp.status == 200) { //发送成功
				   var imgsrc=xmlhttp.responseText;
				   jon=JSON.parse(imgsrc);
				   //alert(jon.length);
				}
			}
			//发送请求
			xmlhttp.open("GET","imgsrc.json",true);
			xmlhttp.send();

			//var imgarr = ["img/flower.png", "img/jd.png", "img/tb.png"];
			var img = document.getElementById("tp");
			var j = 0;
     /*这里ajax异步请求是有时差的,setIntervar()函数应该在ajax之前执行,之所以fun函数里jon已经有值,
     也是因为setInterval定时补上了这个时间差*/
			function fun() {
				//alert(jon.length);
				if(j == jon.length - 1) {
					j = 0;
				} else {
					j++;
				}
				img.src = jon[j].src;

				var dot = document.getElementsByClassName("dot");
				for(var i = 0; i < dot.length; i++) {
					dot[i].className = "dot1"; //清空所有的点为未选中
				}

				var dots = document.getElementsByClassName("dot1");
				dots[j].className = "dot";
			}
			var a=setInterval(fun, 1000);
			
			function click1(v){
				clearInterval(a);
			    //alert(v);
				var dot = document.getElementsByClassName("dot");
				for(var i = 0; i < dot.length; i++) {
					dot[i].className = "dot1"; //清空所有的点为未选中
				}

				var dots = document.getElementsByClassName("dot1");
				dots[v].className = "dot";
				document.getElementById("tp").src=jon[v].src;
				a=setInterval(fun, 2000);
			}
		</script>
	</body>

</html>

效果:


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w_t_y_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值