轮播图的制作

  实现思路:


   一:布局部分:

       1.采用div>ul>li>img布局,来显示轮播的图片banner;

       2.采用div>ul>li>a标签,来显示小红点;

       整个布局如下图所示:图中的第一个li和最后一个li标签是用来做动画过渡时使用,就不会产生空白抖动的情况,这两个图,暂时称之为“站位图”


二:JS代码部分

1.先处理好左右(上一张,下一张)两个按钮的点击事件,点击之后,能够正常的切换当前的图片;

2.在图片切换之后,控制相对应的圆点标签,高亮显示当前图片对应的圆点;

3.在1后的切换图片里面添加动画效果;

4.开启轮播定时器,每隔两秒执行一次,调用下一张按钮的onclick;

5.如果当前轮播定时器或者动画效果定时器正在执行,点击了“下一张按钮”,会产生时间冲突,所以在,每次点击“下一张/上一张按钮”的时候,清除掉所有的动画,并且让当前索引的图片完整的(占满整个屏幕),显示在界面上。

6.给圆点标签,添加onmouseover和out事件。



实现部分:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<div id="wrapper">
   <div id="imgs">
      <ul>
	          <li><a href=""><img src="../image/4.jpg" alt="" /></a></li>
		  <li><a href=""><img src="../image/1.jpg" alt="" /></a></li>
		  <li><a href=""><img src="../image/2.jpg" alt="" /></a></li>
		  <li><a href=""><img src="../image/3.jpg" alt="" /></a></li>
		  <li><a href=""><img src="../image/4.jpg" alt="" /></a></li>
		  <li><a href=""><img src="../image/1.jpg" alt="" /></a></li>
	   </ul>
	</div>
	<div class="clear"></div>
	<div id="nav">
	    <ul>
		    <li><a class="current">1</a></li>
		    <li><a>2</a></li>
		    <li><a>3</a></li>
			<li><a>4</a></li>
	    </ul>
	</div>
	<div id="preous"></div>
	<div id="next"></div>
  </div>
  
</body>
</html>

在静态页面中,需要注意:

1.给图片轮播的ul外层的div标签,设置为一张图片的宽度,并且设置溢出的不显示。

2.给图片轮播的ul标签的宽度必须为li标签的总数*每张的宽度。

3.圆点标签的div,设置的z-index必须比图片轮播的div优先级要高。

二.JS业务逻辑部分

     获取到所有需要操作的对象。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是制作HTML网页轮的步骤和代码示例: 1. HTML结构 ```html <div class="slider"> <ul class="slider-list"> <li><img src="img/1.jpg" alt=""></li> <li><img src="img/2.jpg" alt=""></li> <li><img src="img/3.jpg" alt=""></li> <li><img src="img/4.jpg" alt=""></li> <li><img src="img/5.jpg" alt=""></li> </ul> <ol class="slider-nav"></ol> <a href="javascript:;" class="slider-arrow slider-arrow-left"><</a> <a href="javascript:;" class="slider-arrow slider-arrow-right">></a> </div> ``` 2. CSS样式 ```css .slider { position: relative; width: 600px; height: 400px; overflow: hidden; } .slider-list { position: absolute; left: 0; top: 0; width: 3000px; height: 400px; } .slider-list li { float: left; width: 600px; height: 400px; } .slider-nav { position: absolute; right: 10px; bottom: 10px; z-index: 1; } .slider-nav li { float: left; width: 10px; height: 10px; margin-right: 5px; background-color: #ccc; border-radius: 50%; cursor: pointer; } .slider-nav li.active { background-color: #f40; } .slider-arrow { position: absolute; top: 50%; margin-top: -20px; width: 40px; height: 40px; line-height: 40px; text-align: center; font-size: 30px; color: #fff; background-color: rgba(0, 0, 0, 0.3); cursor: pointer; z-index: 1; } .slider-arrow-left { left: 10px; } .slider-arrow-right { right: 10px; } ``` 3. JavaScript代码 ```javascript var slider = document.querySelector('.slider'); var sliderList = slider.querySelector('.slider-list'); var sliderNav = slider.querySelector('.slider-nav'); var sliderArrows = slider.querySelectorAll('.slider-arrow'); var focusWidth = slider.offsetWidth; var timer = null; var num = 0; // 动态生成小圆圈 for (var i = 0; i < sliderList.children.length; i++) { var li = document.createElement('li'); li.setAttribute('data-index', i); sliderNav.appendChild(li); } // 设置第一个小圆圈为选中状态 sliderNav.children[0].classList.add('active'); // 将第一张片复制一份放在最后 var firstImg = sliderList.children[0].cloneNode(true); sliderList.appendChild(firstImg); // 点击小圆圈切换片 sliderNav.addEventListener('click', function (e) { if (e.target.tagName.toLowerCase() === 'li') { var index = e.target.getAttribute('data-index'); num = index; animate(sliderList, -index * focusWidth); setActiveNav(index); } }); // 点击左右箭头切换片 for (var i = 0; i < sliderArrows.length; i++) { sliderArrows[i].addEventListener('click', function () { if (this.classList.contains('slider-arrow-left')) { num--; if (num < 0) { sliderList.style.left = -sliderList.children.length * focusWidth + 'px'; num = sliderList.children.length - 2; } animate(sliderList, -num * focusWidth); setActiveNav(num); } else if (this.classList.contains('slider-arrow-right')) { num++; if (num > sliderList.children.length - 1) { sliderList.style.left = 0; num = 1; } animate(sliderList, -num * focusWidth); setActiveNav(num); } }); } // 自动轮 timer = setInterval(function () { sliderArrows[1].click(); }, 2000); // 鼠标移入停止轮,移出继续轮 slider.addEventListener('mouseenter', function () { clearInterval(timer); }); slider.addEventListener('mouseleave', function () { timer = setInterval(function () { sliderArrows[1].click(); }, 2000); }); // 设置小圆圈选中状态 function setActiveNav(index) { for (var i = 0; i < sliderNav.children.length; i++) { sliderNav.children[i].classList.remove('active'); } sliderNav.children[index % sliderNav.children.length].classList.add('active'); } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值