实践 - 焦点轮播图效果

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
	<title>实践 - 焦点轮播图效果</title>
</head>
<body>
	<div class="main" id='main'>
		<ul id="picimg">
			<li><img src="https://pic.imeigoo.com/images/2017/07/02/1OL__1.jpg" alt=""></li>
			<li><img src="https://pic.imeigoo.com/images/2017/07/02/2__1.jpg" alt=""></li>
			<li><img src="https://pic.imeigoo.com/images/2017/07/02/3__1.jpg" alt=""></li>
			<li><img src="https://pic.imeigoo.com/images/2017/07/02/4__1.jpg" alt=""></li>
			<li><img src="https://pic.imeigoo.com/images/2017/07/02/13__1.jpg" alt=""></li>    
		</ul>
		<ol id="liston">
			<li class="button">1</li>
			<li>2</li>
			<li>3</li>
			<li>4</li>
			<li>5</li>
		</ol>
	</div>
</body>
</html>

<style>
		*{margin:0;padding:0;list-style:none;}
		.main{position:relative;overflow:hidden;margin:60px auto;margin:100px auto;width:800px;height:400px;}
		.main ul{position:absolute;}
		.main ul li{height:400px;}
		.main ol{position:absolute;right:5px;bottom:10px;}
		.main ol li{float:left;margin-left:5px;width:20px;height:20px;background:#ccc;color:#000;text-align:center;line-height:center;cursor:pointer;border-radius: 26px;font-size: 14px;}
		.main ol .button{background:#E97305;color:#fff;}
	</style>

<script type="text/javascript">
	/*
	运用到的知识点:
		setInterval() 动作的作用是在播放动画的时,每隔一定时间就调用函数,方法或对象。使用该方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭
		clearInterval() 方法能够取消setInterval()方法设置的定时器 此方法的参数必须是要取消相应的setInerval()方法的返回值。
		onmouseover() 鼠标指针移动到元素上时触发
		onmouseout() 事件会在鼠标指针移出指定的对象时发生

	*/

	//1.页面加载后执行,获取整个容器所有存放数据索引的li(liston)及放图片列表的ul(picimg);定义存放定时器的变量timer,存放当前索引的变量index;
		window.onload = function(){
	    var main = document.getElementById('main');
	    var picimg = document.getElementById('picimg').getElementsByTagName("li");
	    var liston = document.getElementById('liston').getElementsByTagName('li');
	    var index = 0;     //存放当前索引的变量index
	    var timer = null;  //定义存放定时器的变量

	//2.定义图片切换播放函数
	    function changePicimg (indexID) {           //图片切换行为封装为一个函数,方便其他地方调用
	      for (var i = 0; i < picimg.length; ++i) { //循环遍历图片列表
	        picimg[i].style.display = "none";       //获取到某一个图片,设置样式为隐藏
	        liston[i].className = "";               //按钮列表对应的某一个,样式设置为空
	      }
	      picimg[indexID].style.display = "block";  //根据当前索引的值,设置显示样式
	      liston[indexID].className = "button";         //按钮列表根据当前的索引的值,设置样式;
	    }
	//3.给索引值设置个限制,当索引大于或者等于图片列表个数时,索引值为0,图片切换播放函数就会一直循环播放
	    function autoPlay () {
			if(++index >= picimg.length){ 
			index = 0;
			}
			changePicimg(index); //调用图片切换播放函数,index为参数
	    }

	//4.定义定时器并调用自动图片切换播放函数,每一秒钟执行一次
	    timer = setInterval(autoPlay, 1000);

	//5.鼠标划过整个容器时停止自动播放,停止了函数就不会运行了
	    main.onmouseover = function () {
	      	clearInterval(timer); // 取消setInterval()方法设置的定时器
	    }

	//6.鼠标离开整个容器时继续播放至下一张
	    main.onmouseout = function () {
	      	timer = setInterval(autoPlay, 1000);
	    }

	//7.遍历所有数字按钮导航实现划过切换至对应的图片
		for (var i = 0; i < liston.length; i++) {
			liston[i].onmouseover = function () { //当鼠标划过某一项
				clearInterval(timer); //取消setInterval()方法设置的定时器
				index = this.innerText - 1;  //当前文本减1
				changePicimg(index);
			}
		}

   	};
	</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值