焦点定时式轮播图

6 篇文章 0 订阅

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>焦点定时式轮播图</title>
	<style type="text/css">
		* {
			padding: 0;
			margin: 0;
		}
		.outer {
			width: 790px;
			height: 340px;
			padding: 5px;
			border: 1px solid gray;
			margin: 100px auto 0;
			position: relative;
		}

		.inner {
			width: 790px;
			height: 340px;
			position: relative;
			overflow: hidden;
		}

		.inner ul {
			width: 600%;
			list-style: none;
			position: absolute;
			left: 0;
			top: 0;
		}
		.inner ul li {
			float: left;
			margin-right: 5px;
		}

		.btn {
			width: 120px;
			padding: 8px;
			background-color: hsla(0,0%,100%,0.3);
			position: absolute;
			left: 50%;
			bottom: 20px;
			border-radius: 15px;
			margin-left: -60px;
		}
		.btn span {
			float: left;
			height: 12px;
			width: 12px;
			border-radius: 50%;
			/*background-color: white;*/
			margin: 0 6px;
		}
		.acrile {
			background-color: white;
		}
		.acrile.active {
			background-color: red;
		}
	</style>
</head>
<body>
	<div class="outer">
		<div class="inner">
			<ul>
				<li><img src="images/banner-1.jpg" alt=""></li>
				<li><img src="images/banner-2.jpg" alt=""></li>
				<li><img src="images/banner-3.jpg" alt=""></li>
				<li><img src="images/banner-4.jpg" alt=""></li>
				<li><img src="images/banner-5.jpg" alt=""></li>
			</ul>
		</div>
		<div class="btn">
			<span class="acrile active"></span>
			<span class="acrile"></span>
			<span class="acrile"></span>
			<span class="acrile"></span>
			<span class="acrile"></span>
		</div>                 
	</div>
	<!-- 外接js -->

	<script type="text/javascript">
		//获取ul
		var ul=document.getElementsByTagName('ul')[0];
		//获取所有span
		var spans=document.getElementsByClassName('acrile');
		// 设置循环遍历数组
		var count=1;

		ul.onmouseover=function(){
			clearInterval(autoplayId);
		}

		ul.onmouseout=function(){
			autoplay();
		}


		  function autoplay(){
			 autoplayId=setInterval(function(){
				count=(count>4)?0:count;
				for (var i = 0; i < spans.length; i++) {
					//设置点击事件
						spans[i].className='acrile';
						}
						spans[count].className='acrile active';
						//将移动坐标赋值给一个声名变量
						var zuobiao=count*-795;
						//运行移动函数
						aaa(ul,zuobiao);
				count++;
			},3000);			
		}

		autoplay();

		for(var i = 0;i< spans.length;i++){
			//给按钮绑定索引
			spans[i].inde = i;
			spans[i].onmouseover = function(){
				//先切换按钮的样式,使用排他思想,先将所有的样式置为白色的
				clearInterval(autoplayId);
				for(var j = 0;j< spans.length;j++){
					spans[j].className = 'acrile';	
				}
				//将自己的样式改为红色
				this.className = "acrile active";

				//移动图片
				aaa(ul,this.inde * -795);
				count=this.inde+1;
			}
			spans[i].onmouseout = function(){
				autoplay();
			}
		}
		function aaa (a,b){//设置移动函数
			//清除定时器
			clearInterval(a.ccc);
			//设置自己的移动定时器
			a.ccc=setInterval(function(){//设置移动函数
				//设置停止条件
				if(a.offsetLeft==b){
					//条件达成,清除定时器
					clearInterval(a.ccc);
				}
				//条件不达成,运行else
				else {
					// 声明一个变量
					var ddd=0;
					//设置移动条件
					if((b-a.offsetLeft)>0){
						//条件达成,增加多少像素点
						ddd= Math.ceil((b-a.offsetLeft)/10);
					}
					else {
						//条件不达成,减少多少像素点
						ddd=Math.ceil((b-a.offsetLeft)/10-1);
					}
					//最后增加左定位的像素点
					a.style.left = a.offsetLeft+ddd+'px';
				}
			},30);//设置间隔多少时间运行一次
		}
	</script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值