js轮播图

在忙其他项目,所以这周学得不多

复习DOM查询操作,增删改查操作,获取元素等

学习了轮播图的写法,并应用定时器实现定时自动切换,其余笔记在代码段中

<!DOCTYPE html>
<html>
<head>
	<title>轮播图练习1</title>
	<meta charset="utf-8">
	<style type="text/css">
		*{
			margin: 0;
			padding: 0;
		}
		#outer
		{	
			/*裁剪溢出*/
			overflow: hidden;
			/*背景颜色*/
			background-color: greenyellow;
			width:420px;
			height: 694px;
			/*padding*/
			padding: 5px 0;
			/*div居中*/
			margin: 50px auto;
			position: relative;

		}
		#imglist
		{
			/*width:2100px;*/
			list-style: none;
			/*ul绝对定位脱离文档流*/
			position: absolute;
			/*设置偏移量显示下一张*/
			left: -1680px;
		}
		#imglist li
		{
			list-style: none;
			/*设置浮动*/
			float: left;
			/*设置左右外边距*/
			margin: 0 10px;
		}
		#nav
		{
			margin: 0 auto;
			width: 1000px;
			/**/
			position: absolute;
			/*设置位置*/
			bottom: 15px;
			/*left动态设置*/
			left: 147.5px;
			/*这是自己计算的*/
		}
		#nav a
		{	
			/*设置超链接浮动内联元素变成块元素,但是是排在一行的*/
			float: left;
			/*设置超链接的宽和高内联元素宽高不可设置需要转变为块元素*/
			width: 15px;
			height: 15px;
			/*设置背景颜色*/
			background-color: red;
			/*设置左右外边距*/
			margin:0 5px;
			/*设置透明*/
			opacity: 0.5;
			/*兼容IE8透明*/
			filter: alpha(opacity=50);	
		}
		/*设置鼠标移入效果*/
		#nav a:hover
		{
			background-color: black;
		}
	</style>
	<script type="text/javascript">
		window.onload=function(){
			//获取imgList
			var imglist = document . getElementById("imglist");
			//获取页面中所有的img标签
			var imgArr = document. getElementsByTagName("img");
			//设置imgList的宽度
			imglist.style.width = 420* imgArr.length+"px";

			/*设置导航按钮动态居中*/
			//获取navDiv
			var nav = document.getElementById("nav");
			//获取outer
			var outer = document.getElementById("outer");
			//设置navDiv的left值
			nav.style.left = (outer.offsetwidth-nav.offsetWidth)/2 + "px";
			// 默认索引
			var index = 0;
			//获取所有的a
			var allA = document . getElementsByTagName("a");
			//设置默认选中的效果
			allA [index]. style. backgroundColor = "black";

			// 点击超链接切换到指定图片
			// 为所有超链接绑定单击响应函数
			for (var i = 0; i <allA.length; i++) {
				// 做标记,索引保存在对象的属性上
				allA[i].num=i;
				// 为所有超链接绑定单击响应函数
				allA[i].onclick=function(){
					// 当点击函数执行时关闭自动切换函数
						clearInterval(timer);
						// 获取点击超链接的索引,并将其设置为index
						// 修改全局变量index的值
						index=this.num;

						// 切换图片
						// 索引*宽度
						imglist.style.left=-420*index+"px";
							// 当点击函数执行完后又开启自动切换函数
							autoChange();
						// 使用move函数切换图片

						// 修改正在选中的a
						// 变黑,变红
						setA();

				};


			}

			// 开启自动切换图片
				autoChange();
				// 创建一个方法来设置选中的a
				function setA()
				{ 
					// 判断当前索引是否是为最后一张图片,最后一张图片是和第一张图片一样的,特此需要这张图片将效果变好
					if (index>=imgArr.length-1) {
						// 将index设置为0,当切换到最后一张图片时此处可以恢复链接背景颜色,也就是跳转到第一个超链接,因为并没有设置所谓的最后那个超链接
						index=0;

						// 此时显示最后一张图片
						// 通过css瞬间切换到第一张,即偏移量为0px
						imglist.style.left=0;


					}


					// 遍历所有a,并将其背景颜色设置为红色
					for (var i = 0; i < allA.length; i++) {
						allA[i].style.backgroundColor="";
						//空串显示默认样式 
					}
					// 
					allA[i].style.backgroundColor="black";
				};
					// 定义一个timer自动切换标识
				var timer;
				// 创建一个函数
					function autoChange(){
							// 开启一个定时器
							timer=setInterval(function(){
									// index自增
								index++;
								// 取模效果取消白屏,但是要出现ul往反向走
								index%=imgArr.length;
								// 判断index值
								imglist.style.left=-420*index+"px";
										setA();
									
							},3000)
					};


		};
	</script>
</head>
<body>
	<div id="outer">
		<ul id="imglist">
		<li>
			<img src="img/4.jpeg">
		</li>
		<li>
			<img src="img/5.jpeg">
		</li>
		<li>
			<img src="img/4.jpeg">
		</li>
		<li>
			<img src="img/5.jpeg">
		</li>
		<li>
			<img src="img/4.jpeg">
		</li>		
		</ul>
		<!-- 创建超链接 -->
		<div id="nav">
		<a href= "javascript: ;"></a>
		<a href="javascript: ;"></a>
		<a href="javascript: ;"></a>
		<a href="javascript: ;"></a>
		<a href= "javascript: ;"></a>
		</div>
	</div>
</body>
</html>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值