slider幻灯片(焦点图轮换)
网站常用效果之一,以下为简化版,用于学习javascript基础知识。
效果图:
slider幻灯片(焦点图轮换) - 纯JS简化版
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>slider幻灯片 - 纯JS简化版</title> <style type="text/css"> *{margin: 0; padding: 0;} /* slider */ #sliderbox { 500; height:313px;position: relative; overflow: hidden;margin: 20px;} #slider {list-style: none; margin: 0; padding: 0;} #slider li {float:left; margin: 0; padding: 0;} #slidertab {position: absolute; right: 10px; bottom:10px; 80px; height: 20px; list-style: none;} #slidertab li {float: left; 20px; height: 20px; margin: 2px; background: #eee;text-align: center; line-height: 20px;font-size: 12px;} #slidertab li.sliderclass {background: #f00;} </style> <script type="text/javascript"> window.onload = function() { var sliderbox = document.getElementById('sliderbox'); var slider = document.getElementById('slider'); var sliderli = slider.getElementsByTagName('li'); var slidertab = document.getElementById('slidertab'); var slidertabli = slidertab.getElementsByTagName('li'); var inow = 0; sliderbox.onmouseover = function() { clearInterval(timer); } sliderbox.onmouseout =function() { //clearInterval(timer); timer = setInterval(autoplay, 1000); } for(var i=0; i<slidertabli.length; i++) { slidertabli[i].index = i; slidertabli[i].onclick = function() { clearInterval(timer); for(var a=0; a<slidertabli.length; a++) { slidertabli[a].className = ""; sliderli[a].style.display = "none"; } this.className = "sliderclass"; sliderli[this.index].style.display = "block"; inow = this.index; } } function autoplay() { for(var i=0; i<sliderli.length; i++) { sliderli[i].style.display = 'none'; slidertabli[i].className = ""; } sliderli[inow].style.display = 'block'; slidertabli[inow].className = "sliderclass"; inow = inow==sliderli.length-1 ? 0 : inow+1; } timer = setInterval(autoplay, 1000); } </script> </head> <body> <div id="sliderbox"> <ul id="slider"> <li><img src="tab1.jpg" /></li> <li><img src="tab2.jpg" /></li> <li><img src="tab3.jpg" /></li> </ul> <ul id="slidertab"> <li>1</li> <li>2</li> <li>3</li> </ul> </div> </body> </html>
slider幻灯片 - 面向对象版
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>slider幻灯片 - 面向对象版</title> <style type="text/css"> *{margin: 0; padding: 0;} /* slider */ #sliderbox, #sliderbox2 { 500; height:313px;position: relative; overflow: hidden;margin: 20px;} #slider, #slider2 {list-style: none; margin: 0; padding: 0;} #slider li, #slider2 li {float:left; margin: 0; padding: 0;} #slidertab, #slidertab2 {position: absolute; right: 10px; bottom:10px; 80px; height: 20px; list-style: none;} #slidertab li, #slidertab2 li {float: left; 20px; height: 20px; margin: 2px; background: #eee;text-align: center; line-height: 20px;font-size: 12px;} #slidertab li.sliderclass, #slidertab2 li.sliderclass {background: #f00;} </style> <script type="text/javascript"> window.onload = function() { new slider('sliderbox', 'slider', 'slidertab'); new slider('sliderbox2', 'slider2', 'slidertab2'); } function slider(sliderbox, slider, slidertab) { var _this = this; var sliderbox = document.getElementById(sliderbox); var slider = document.getElementById(slider); var slidertab = document.getElementById(slidertab); this.sliderli = slider.getElementsByTagName('li'); this.slidertabli = slidertab.getElementsByTagName('li'); this.inow = 0; sliderbox.onmouseover = function() { _this.stop(_this); } sliderbox.onmouseout = function() { _this.autoplay(_this); } for(var i=0; i<this.slidertabli.length; i++) { this.slidertabli[i].index = i; this.slidertabli[i].onclick = function() { _this.tabfn(_this, this); } } _this.autoplay(this); }; slider.prototype.autoplay = function(obj) { obj.timer = setInterval(function(){ for(var i=0; i<obj.sliderli.length; i++) { obj.sliderli[i].style.display = 'none'; obj.slidertabli[i].className = ""; } obj.sliderli[obj.inow].style.display = 'block'; obj.slidertabli[obj.inow].className = "sliderclass"; obj.inow = obj.inow==obj.sliderli.length-1 ? 0 : obj.inow+1; }, 1000); } slider.prototype.stop = function(obj) { clearInterval(obj.timer); } slider.prototype.tabfn = function(obj, elem) { clearInterval(obj.timer); for(var a=0; a<obj.slidertabli.length; a++) { obj.slidertabli[a].className = ""; obj.sliderli[a].style.display = "none"; } elem.className = "sliderclass"; obj.sliderli[elem.index].style.display = "block"; obj.inow = elem.index; } </script> </head> <body> <div id="sliderbox"> <ul id="slider"> <li><img src="tab1.jpg" /></li> <li><img src="tab2.jpg" /></li> <li><img src="tab3.jpg" /></li> </ul> <ul id="slidertab"> <li>1</li> <li>2</li> <li>3</li> </ul> </div> <div id="sliderbox2"> <ul id="slider2"> <li><img src="tab1.jpg" /></li> <li><img src="tab2.jpg" /></li> <li><img src="tab3.jpg" /></li> </ul> <ul id="slidertab2"> <li>1</li> <li>2</li> <li>3</li> </ul> </div> </body> </html>