标签:
布局
<div id="box"> <ul> <li style="display:block"><a href="#"><img src="images/1.jpg" alt="广告一" /></a></li> <li><a href="#"><img src="images/2.jpg" alt="广告二" /></a></li> <li><a href="#"><img src="images/3.jpg" alt="广告三" /></a></li> <li><a href="#"><img src="images/4.jpg" alt="广告四" /></a></li> <li><a href="#"><img src="images/5.jpg" alt="广告五" /></a></li> </ul> <ol> <li class="active">1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ol> </div>
window.onload = function(){ //广告图片列表 var oUl = document.getElementsByTagName(‘ul‘)[0]; var aLiUl = oUl.getElementsByTagName(‘li‘); //按钮列表 var oOl = document.getElementsByTagName(‘ol‘)[0]; var aLiOl = oOl.getElementsByTagName(‘li‘); //循环遍历按钮列表 for(var i=0;i<aLiOl.length;i++){ //给按钮设置索引 aLiOl[i].index = i; //为按钮列表中的每一项添加鼠标移入事件 aLiOl[i].onmouseover = function(){ for(var j=0;j<aLiOl.length;j++){ //把按钮列表所有的按钮的类名都设置为空 aLiOl[j].className = ‘‘; //把广告图片列表所有的图片都隐藏起来 aLiUl[j].style.display = ‘none‘; } //为当前鼠标移入的按钮添加active类,让这个按钮高亮显示 this.className = ‘active‘; //通过按钮列表的按钮索引找到对应的图片让其显示 aLiUl[this.index].style.display = ‘block‘; }; } };
注:也可以把onmouseover改成onclick
引入move.js
function getStyle(obj, name) { if(obj.currentStyle) { return obj.currentStyle[name]; } else { return getComputedStyle(obj, false)[name]; } } function startMove(obj, json, fnEnd) { clearInterval(obj.timer); obj.timer=setInterval(function (){ var bStop=true; //假设:所有值都已经到了 for(var attr in json) { var cur=0; if(attr==‘opacity‘) { cur=Math.round(parseFloat(getStyle(obj, attr))*100); } else { cur=parseInt(getStyle(obj, attr)); } var speed=(json[attr]-cur)/6; speed=speed>0?Math.ceil(speed):Math.floor(speed); if(cur!=json[attr]) bStop=false; if(attr==‘opacity‘) { obj.style.filter=‘alpha(opacity:‘+(cur+speed)+‘)‘; obj.style.opacity=(cur+speed)/100; } else { obj.style[attr]=cur+speed+‘px‘; } } if(bStop) { clearInterval(obj.timer); if(fnEnd)fnEnd(); } }, 30); }
HTML
<div id="box"> <ul> <li style="display:block;"><a href="#"><img src="images/1.jpg" alt="广告一" /></a></li> <li><a href="#"><img src="images/2.jpg" alt="广告二" /></a></li> <li><a href="#"><img src="images/3.jpg" alt="广告三" /></a></li> <li><a href="#"><img src="images/4.jpg" alt="广告四" /></a></li> <li><a href="#"><img src="images/5.jpg" alt="广告五" /></a></li> </ul> <ol> <li class="active">1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ol> </div> <script src="js/move.js"></script>
JS
window.onload = function(){ //广告图片列表 var oUl = document.getElementsByTagName(‘ul‘)[0]; var aLiUl = oUl.getElementsByTagName(‘li‘); //按钮列表 var oOl = document.getElementsByTagName(‘ol‘)[0]; var aLiOl = oOl.getElementsByTagName(‘li‘); //循环遍历按钮列表 for(var i=0;i<aLiOl.length;i++){ //给按钮设置索引 aLiOl[i].index = i; //为按钮列表中的每一项添加鼠标移入事件 aLiOl[i].onmouseover = function(){ for(var j=0;j<aLiOl.length;j++){ //把按钮列表所有的按钮的类名都设置为空 aLiOl[j].className = ‘‘; //把广告图片列表所有的图片都隐藏起来 aLiUl[j].style.display = ‘none‘; //把广告图片列表所有的图片的透明度都设为0 aLiUl[j].style.filter = ‘alpha(opacity=0)‘; aLiUl[j].style.opacity = 0; } //为当前鼠标移入的按钮添加active类,让这个按钮高亮显示 this.className = ‘active‘; //通过按钮列表的按钮索引找到对应的图片让其显示 aLiUl[this.index].style.display = ‘block‘; //让对应的图片淡入 startMove(aLiUl[this.index],{opacity:100}); }; } };
HTML
<div id="box"> <ul> <li style="display:block; filter:alpha(opacity=100); opacity:1;"><a href="#"><img src="images/1.jpg" alt="广告一" /></a></li> <li><a href="#"><img src="images/2.jpg" alt="广告二" /></a></li> <li><a href="#"><img src="images/3.jpg" alt="广告三" /></a></li> <li><a href="#"><img src="images/4.jpg" alt="广告四" /></a></li> <li><a href="#"><img src="images/5.jpg" alt="广告五" /></a></li> </ul> <ol> <li class="active">1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ol> </div> <script src="js/move.js"></script>
在CSS里设置其他li的透明度为0,并且层叠在一起
{filter:alpha(opacity=0); opacity:0; position:absolute; top:0; left:0;}
JS
window.onload = function(){ //广告图片列表 var oUl = document.getElementsByTagName(‘ul‘)[0]; var aLiUl = oUl.getElementsByTagName(‘li‘); //按钮列表 var oOl = document.getElementsByTagName(‘ol‘)[0]; var aLiOl = oOl.getElementsByTagName(‘li‘); //循环遍历按钮列表 for(var i=0;i<aLiOl.length;i++){ //给按钮设置索引 aLiOl[i].index = i; //为按钮列表中的每一项添加鼠标移入事件 aLiOl[i].onmouseover = function(){ for(var j=0;j<aLiOl.length;j++){ //把按钮列表所有的按钮的类名都设置为空 aLiOl[j].className = ‘‘; //让所有广告图片淡出并且隐藏 startMove(aLiUl[i],{opacity:0},function(){ this.style.display = ‘none‘; }); } //为当前鼠标移入的按钮添加active类,让这个按钮高亮显示 this.className = ‘active‘; //通过按钮列表的按钮索引找到对应的图片让其显示 aLiUl[this.index].style.display = ‘block‘; //让对应的图片淡入 startMove(aLiUl[this.index],{opacity:100}); }; } };
HTML
<div id="box"> <ul> <li><a href="#"><img src="images/1.jpg" alt="广告一" /></a></li> <li><a href="#"><img src="images/2.jpg" alt="广告二" /></a></li> <li><a href="#"><img src="images/3.jpg" alt="广告三" /></a></li> <li><a href="#"><img src="images/4.jpg" alt="广告四" /></a></li> <li><a href="#"><img src="images/5.jpg" alt="广告五" /></a></li> </ul> <ol> <li class="active">1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ol> </div> <script src="js/move.js"></script>
JS
window.onload = function(){ //广告图片列表 var oUl = document.getElementsByTagName(‘ul‘)[0]; var aLiUl = oUl.getElementsByTagName(‘li‘); //按钮列表 var oOl = document.getElementsByTagName(‘ol‘)[0]; var aLiOl = oOl.getElementsByTagName(‘li‘); //获取图片高度 var oneHeight = aLiUl[0].offsetHeight; //循环遍历按钮列表 for(var i=0;i<aLiOl.length;i++){ //给按钮设置索引 aLiOl[i].index = i; //为按钮列表中的每一项添加鼠标移入事件 aLiOl[i].onmouseover = function(){ for(var j=0;j<aLiOl.length;j++){ //把按钮列表所有的按钮的类名都设置为空 aLiOl[j].className = ‘‘; } //为当前鼠标移入的按钮添加active类,让这个按钮高亮显示 this.className = ‘active‘;//让ul上下移动到单张图片高度与索引的积 startMove(oUl,{top:- this.index*oneHeight}); }; } };
可参考博客“智能社-淘宝幻灯片上下浮动效果”
window.onload = function(){ //广告图片列表 var oUl = document.getElementsByTagName(‘ul‘)[0]; var aLiUl = oUl.getElementsByTagName(‘li‘); //按钮列表 var oOl = document.getElementsByTagName(‘ol‘)[0]; var aLiOl = oOl.getElementsByTagName(‘li‘); //幻灯片container var oBox = document.getElementById(‘box‘); //获取图片高度 var oneHeight = aLiUl[0].offsetHeight; //控制自动播放的标识 var iNow = 0; //控制定时器变量 var timer = null; //循环遍历按钮列表 for(var i=0;i<aLiOl.length;i++){ //给按钮设置索引 aLiOl[i].index = i; //为按钮列表中的每一项添加鼠标移入事件 aLiOl[i].onmouseover = function(){ for(var j=0;j<aLiOl.length;j++){ //把按钮列表所有的按钮的类名都设置为空 aLiOl[j].className = ‘‘; } //为当前鼠标移入的按钮添加active类,让这个按钮高亮显示 this.className = ‘active‘; //更新iNow以让鼠标移出后图片自动播放继续往后走 iNow = this.index; //让ul上下移动到单张图片高度与索引的积 startMove(oUl,{top:- this.index*oneHeight}); }; } //设置定时器让图片自动滚动 timer = setInterval(toRun,2000); //鼠标移入清除定时器 oBox.onmouseover = function(){ clearInterval(timer); }; //鼠标移出重新开启定时器 oBox.onmouseout = function(){ timer = setInterval(toRun,2000); }; function toRun(){ //当控制标识超出图片列表长度时,让标识归0,让图片列表回滚到第一张 if(iNow == aLiOl.length-1){ iNow = 0; }else{ iNow++; } for(var i=0;i<aLiOl.length;i++){ //把按钮列表所有的按钮的类名都设置为空 aLiOl[i].className = ‘‘; } //为当前对应的按钮添加active类,让这个按钮高亮显示 aLiOl[iNow].className = ‘active‘; //滚动图片 startMove(oUl,{top:- iNow*oneHeight}); } };
标签:
原文地址:http://www.cnblogs.com/zcynine/p/5125770.html