1、小图标版本
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> * { padding: 0; margin: 0; list-style: none; } .scrollImg { margin: 150px auto; width: 500px; height: 200px; padding: 5px; border: 1px solid #ccc; } .scrollContent { position: relative; width: 500px; height: 200px; overflow: hidden; } .scrollContent ul { width: 500%; position: absolute; } .scrollContent ul li{ float: left; } .scrollContent ol { position: absolute; right: 13px; bottom: 8px; } .scrollContent ol li { float: left; width: 20px; height: 20px; font: 500 15px/20px "simsun"; text-align: center; background-color: #fff; margin-right: 10px; cursor: pointer; } .scrollContent ol li.current { background-color: yellow; } </style> </head> <body> <div class="scrollImg"> <div class="scrollContent" id="scrollContent"> <ul> <li><img src="images/1.jpg"></li> <li><img src="images/2.jpg"></li> <li><img src="images/3.jpg"></li> <li><img src="images/4.jpg"></li> <li><img src="images/5.jpg"></li> </ul> <ol> <li class="current">1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ol> </div> <script> var scrollContent = document.getElementById("scrollContent"); var scrollUl = scrollContent.children[0]; var icon = scrollContent.children[1]; var iconLiArr = icon.children; var imgWidth = scrollContent.offsetWidth; //鼠标放在小图标上,对于图表点亮 for (var i = 0; i < iconLiArr.length; i++) { iconLiArr[i].index = i; iconLiArr[i].onmouseover = function () { for (var j = 0; j < iconLiArr.length; j++) { iconLiArr[j].className = ""; } this.className = "current"; animate(scrollUl, -this.index * imgWidth); } } //图片移动 function animate(ele, target) { clearInterval(ele.timer); var speed = ele.offsetLeft < target ? 15 : -15; ele.timer = setInterval(function () { ele.style.left = ele.offsetLeft + speed + "px"; var value = ele.offsetLeft - target; if (Math.abs(value) <= Math.abs(speed)) { ele.style.left = target + "px"; clearInterval(ele.timer); } }, 10); } </script> </div> </body> </html>
2、小图标版本附有定时器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> * { padding: 0; margin: 0; list-style: none; } .scrollImg { margin: 150px auto; width: 500px; height: 200px; padding: 5px; border: 1px solid #ccc; } .scrollContent { position: relative; width: 500px; height: 200px; overflow: hidden; } .scrollContent ul { width: 600%; position: absolute; } .scrollContent ul li { float: left; } .scrollContent ol { position: absolute; right: 13px; bottom: 8px; } .scrollContent ol li { float: left; width: 20px; height: 20px; font: 500 15px/20px "simsun"; text-align: center; background-color: #fff; margin-right: 10px; cursor: pointer; } .scrollContent ol li.current { background-color: yellow; } </style> </head> <body> <div class="scrollImg"> <div class="scrollContent" id="scrollContent"> <ul> <li><img src="images/1.jpg"></li> <li><img src="images/2.jpg"></li> <li><img src="images/3.jpg"></li> <li><img src="images/4.jpg"></li> <li><img src="images/5.jpg"></li> </ul> <ol> <li class="current">1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ol> </div> <script> var scrollContent = document.getElementById("scrollContent"); var scrollUl = scrollContent.children[0]; var icon = scrollContent.children[1]; var iconLiArr = icon.children; var imgWidth = scrollContent.offsetWidth; //1、将第一张图片克隆到最后一张 var imgEle = scrollUl.children[0].cloneNode(true); scrollUl.appendChild(imgEle); //2、鼠标放在小图标上,对应图表点亮 //5、因为有定时器,要注意点亮的图标与图片必须要一致 for (var i = 0; i < iconLiArr.length; i++) { iconLiArr[i].index = i; iconLiArr[i].onmouseover = function () { for (var j = 0; j < iconLiArr.length; j++) { iconLiArr[j].className = ""; } this.className = "current"; animate(scrollUl, -this.index * imgWidth); key = square = this.index; } } var key = 0; var square = 0; //3、定时器,每隔一秒滚动一次图片,对应的图片被点亮 var timer = setInterval(autoPaly, 1000); function autoPaly() { key++; if (key > iconLiArr.length) { scrollUl.style.left = "0px"; key = 1; } animate(scrollUl, -key * imgWidth); square++; if (key > iconLiArr.length - 1) { square = 0; } for (var i = 0; i < iconLiArr.length; i++) { iconLiArr[i].className = ""; } iconLiArr[square].className = "current"; } //4、鼠标移动到图片清除定时器,离开开启定时器 scrollContent.onmouseover = function () { clearInterval(timer); } scrollContent.onmouseout = function () { timer = setInterval(autoPaly, 1000); } //图片移动 function animate(ele, target) { clearInterval(ele.timer); var speed = ele.offsetLeft < target ? 15 : -15; ele.timer = setInterval(function () { ele.style.left = ele.offsetLeft + speed + "px"; var value = ele.offsetLeft - target; if (Math.abs(value) <= Math.abs(speed)) { ele.style.left = target + "px"; clearInterval(ele.timer); } }, 10); } </script> </div> </body> </html>
3、箭头版本
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> * { padding: 0; margin: 0; list-style: none; } .scrollImg { margin: 150px auto; width: 500px; height: 200px; padding: 5px; border: 1px solid #ccc; } .scrollContent { position: relative; width: 500px; height: 200px; overflow: hidden; } .scrollContent ul { width: 500%; position: absolute; } .scrollContent ul li { float: left; } .arrow { display: none; } .arrow span { position: absolute; top: 50%; margin-top: -25px; width: 30px; height: 50px; font: 500 40px/50px "simsun"; text-align: center; background-color: #ccc; opacity: 0.6; cursor: pointer; } .arrow span.arrLeft { left: 5px; border-radius: 0 10px 10px 0; } .arrow span.arrRight { right: 5px; border-radius: 10px 0 0 10px; } </style> </head> <body> <div class="scrollImg"> <div class="scrollContent" id="scrollContent"> <ul> <li><img src="images/1.jpg"></li> <li><img src="images/2.jpg"></li> <li><img src="images/3.jpg"></li> <li><img src="images/4.jpg"></li> <li><img src="images/5.jpg"></li> </ul> <div class="arrow"> <span class="arrLeft"><</span> <span class="arrRight">></span> </div> </div> <script> var scrollContent = document.getElementById("scrollContent"); var scrollUl = scrollContent.children[0]; var arrow = scrollContent.children[1]; var imgWidth = scrollContent.offsetWidth; //1、鼠标移动到图片显示箭头,离开隐藏箭头 scrollContent.onmouseover = function () { arrow.style.display = "block"; } scrollContent.onmouseout = function () { arrow.style.display = "none"; } var key = 0; //2、点击左箭头,图片向右边移动,点击右箭头,图片向左边移动 arrow.children[0].onclick = function () { key++; if (key > scrollUl.children.length - 1) { key = scrollUl.children.length - 1; } animate(scrollUl, -key * imgWidth); } arrow.children[1].onclick = function () { key--; if (key < 0) { key = 0; } animate(scrollUl, -key * imgWidth); } //图片移动 function animate(ele, target) { clearInterval(ele.timer); var speed = ele.offsetLeft < target ? 15 : -15; ele.timer = setInterval(function () { ele.style.left = ele.offsetLeft + speed + "px"; var value = ele.offsetLeft - target; if (Math.abs(value) <= Math.abs(speed)) { ele.style.left = target + "px"; clearInterval(ele.timer); } }, 10); } </script> </div> </body> </html>
4、箭头版本附有定时器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> * { padding: 0; margin: 0; list-style: none; } .scrollImg { margin: 150px auto; width: 500px; height: 200px; padding: 5px; border: 1px solid #ccc; } .scrollContent { position: relative; width: 500px; height: 200px; overflow: hidden; } .scrollContent ul { width: 600%; position: absolute; } .scrollContent ul li { float: left; } .arrow { display: none; } .arrow span { position: absolute; top: 50%; margin-top: -25px; width: 30px; height: 50px; font: 500 40px/50px "simsun"; text-align: center; background-color: #ccc; opacity: 0.6; cursor: pointer; } .arrow span.arrLeft { left: 5px; border-radius: 0 10px 10px 0; } .arrow span.arrRight { right: 5px; border-radius: 10px 0 0 10px; } </style> </head> <body> <div class="scrollImg"> <div class="scrollContent" id="scrollContent"> <ul> <li><img src="images/1.jpg"></li> <li><img src="images/2.jpg"></li> <li><img src="images/3.jpg"></li> <li><img src="images/4.jpg"></li> <li><img src="images/5.jpg"></li> </ul> <div class="arrow"> <span class="arrLeft"><</span> <span class="arrRight">></span> </div> </div> <script> var scrollContent = document.getElementById("scrollContent"); var scrollUl = scrollContent.children[0]; var arrow = scrollContent.children[1]; var imgWidth = scrollContent.offsetWidth; //1、复制第一张图片放到最后一张 var imgEle = scrollUl.children[0].cloneNode(true); scrollUl.appendChild(imgEle); var key = 0; //2、定时器,每隔一秒滚动一次图片,对应的图片被点亮 var timer = setInterval(autoPaly, 1000); function autoPaly() { key++; if (key > scrollUl.children.length - 1) { scrollUl.style.left = "0px"; key = 1; } animate(scrollUl, -key * imgWidth); } //3、鼠标移动到图片清除定时器,显示箭头,离开开启定时器,隐藏箭头 scrollContent.onmouseover = function () { arrow.style.display = "block"; clearInterval(timer); } scrollContent.onmouseout = function () { arrow.style.display = "none"; timer = setInterval(autoPaly, 1000); } //4、点击左箭头,图片向右边移动,点击右箭头,图片向左边移动 arrow.children[0].onclick = function () { autoPaly(); } arrow.children[1].onclick = function () { key--; if (key < 0) { scrollUl.style.left = -(scrollUl.children.length - 1) * imgWidth + "px"; key = scrollUl.children.length - 2; } animate(scrollUl, -key * imgWidth); } //图片移动 function animate(ele, target) { clearInterval(ele.timer); var speed = ele.offsetLeft < target ? 15 : -15; ele.timer = setInterval(function () { ele.style.left = ele.offsetLeft + speed + "px"; var value = ele.offsetLeft - target; if (Math.abs(value) <= Math.abs(speed)) { ele.style.left = target + "px"; clearInterval(ele.timer); } }, 10); } </script> </div> </body> </html>