具备切片滤镜效果的JavaScript图片切换,图片像水纹一样过渡切换,可选参数有:风格样式、焦点图数量、切片效果(1为甩头,2为甩尾,3为凌乱,4随机)、焦点图切换间隔时间,本效果是无文字版的,也就是仅是图片在切换,烈火随后会发布有文字版。 示例: <!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=utf-8" /> <title>具备切片滤镜效果的JavaScript图片切换 - Liehuo学院.net</title> <style type="text/css"> *{margin:0;padding:0;border:0;list-style:none;} body{font:12px/1.5 Verdana, Geneva, sans-serif;background:#eee;padding:20px;} .mF_liuzg{position:relative;width:450px;height:296px;overflow:hidden;font:12px/1.5 Verdana,Geneva,sans-serif;background:#fff;} .mF_liuzg .loading{position:absolute;z-index:9999;width:100%;height:100%;color:#666;text-align:center;padding-top:90px;background:#fff url() center -40px no-repeat;}/*载入画面,如果是GIF动画,可在背景属性里输入图片地址*/ .mF_liuzg .pic li{width:450px;position:relative;overflow:hidden;*margin-top:-2px;} .mF_liuzg .pic li p{width:450px;position:absolute;} .mF_liuzg .pic li p a{display:block;}/*图片和焦点图框架一样大小*/ .mF_liuzg .pic li p img{width:450px;height:296px;} .mF_liuzg .num{position:absolute;z-index:3;bottom:8px;right:8px;color:#333;}/*按钮样式*/ .mF_liuzg .num li{float:left;width:22px;height:18px;position:relative;border:1px solid #333;line-height:18px;text-align:center;margin-right:3px;cursor:pointer;background:#aaa;filter:alpha(opacity=90);opacity:0.9;} .mF_liuzg .num li.current,.mF_liuzg .num li.hover{background:#f60;color:#fff;font-weight:bold;height:20px;line-height:20px;top:-2px;} </style> <script type="text/javascript"> var myFocus={ $:function(id){return document.getElementById(id);}, $$:function(tag,obj){return (typeof obj=='object'?obj:this.$(obj)).getElementsByTagName(tag);}, style:function(obj,style){return (+[1,])?window.getComputedStyle(obj,null)[style]:obj.currentStyle[style];}, easeOut:function(t,b,c,d){return -c*((t=t/d-1)*t*t*t - 1) + b;}, move:function(obj,prop,val,type,spd,fn){//运动函数,时间越大速度越小 var t=0,b=parseInt(this.style(obj,prop)),c=val-b,d=spd||50,st=type,m=c>0?'ceil':'floor'; if(obj[prop+'Timer']) clearInterval(obj[prop+'Timer']); obj[prop+'Timer']=setInterval(function(){ if(t<d){obj.style[prop]=Math[m](myFocus[st](++t,b,c,d))+'px';} else {clearInterval(obj[prop+'Timer']);fn&&fn.call(obj);} },10);return this; }, setting:function(par){ if(window.attachEvent){window.attachEvent('onload',function(){myFocus[par.style](par)});} else{window.addEventListener('load',function(){myFocus[par.style](par)},false);} }, mF_liuzg:function(par){ var box=this.$(par.id),boxH=box.offsetHeight,t=par.time*1000; var pic=this.$$('li',this.$$('ul', box)[0]),n=pic.length; var c=boxH%par.chip?8:par.chip,h=boxH/c,pics=[],nums=[]; nums.push('<ul class=num>'); for(var i=0;i<c;i++){ pics.push('<li><p>') for(var j=0;j<n;j++) pics.push(pic[j].innerHTML); pics.push('</p></li>') } for(var l=0;l<n;l++) nums.push('<li>'+(l+1)+'</li>') nums.push('</ul>'); this.$$('ul', box)[0].innerHTML=pics.join(''); box.innerHTML+=nums.join(''); var btn=this.$$('li',this.$$('ul',box)[1]),pic=this.$$('li',this.$$('ul', box)[0]); for(var i=0;i<c;i++){//初始化样式设置 this.$$('p',pic[i])[0].style.top=-i*h+'px'; pic[i].style.height=h+'px'; this.$$('p',pic[i])[0].style.height=boxH*c+'px'; } var index = 0;//开始显示的序号 box.removeChild(this.$$('div',box)[0]); var run = function(idx) { var tt=par.type==4?Math.round(1+(Math.random()*(3-1))):par.type;//效果选择 btn[index].className = ''; if(index==n-1) index=-1; var N=idx!=undefined?idx:index+1; var spd=tt==2?20:(tt==1?80:Math.round(20+(Math.random()*(80-20)))); for(var i=0;i<c;i++){ if(tt==3) spd=Math.round(20+(Math.random()*(80-20))); myFocus.move(myFocus.$$('p',pic[i])[0],'top',-N*c*h-i*h,'easeOut',spd); spd=tt==2?spd+10:(tt==1?spd-10:spd); } btn[N].className = 'current'; index = N; } run(index); var auto=setInterval(function(){run()},t); for (var j=0;j<n;j++){ btn[j].j=j; btn[j].onclick=function(){if(!this.className) run(this.j)} } box.onmouseover=function(){clearInterval(auto);} box.onmouseout=function(){auto=setInterval(function(){run()},t);} for(var i=0,lk=this.$$('a',box),ln=lk.length;i<ln;i++) lk[i].onfocus=function(){this.blur();}//去除虚线框 } }; myFocus.setting({ style:'mF_liuzg',//风格样式, id:'myFocus',//焦点图ID chip:8,//图片切片数量 type:4,//切片效果,1为甩头,2为甩尾,3为凌乱,4为随机效果 time:4//图片时间间隔 }); </script> </head> <body> <div id="myFocus" class="mF_liuzg"> <div class="loading"><span>Loading……</span></div><!--载入画面--> <ul class="pic"><!--内容列表--> <li><a href="#"><img src="/uploads/common/images/pic1.jpg" alt="图片1" /></a></li> <li><a href="#"><img src="/uploads/common/images/pic2.jpg" alt="图片2" /></a></li> <li><a href="#"><img src="/uploads/common/images/pic3.jpg" alt="图片3" /></a></li> <li><a href="#"><img src="/uploads/common/images/pic4.jpg" alt="图片4" /></a></li> </ul> </div> </body> </html><br /><center>如不能显示效果,请按Ctrl+F5刷新本页,更多网页代码:<a href='http://www.veryhuo.com/' target='_blank'>http://www.veryhuo.com/</a></center>提示:可修改后代码再运行! 文章导航 图片加载时候逐渐出现的砂粒波纹效果js版仿必应搜索首页图片上显示渐隐渐现的小方块