function $A(iterable) { var results = []; for (var i = 0; i < iterable.length; i++)results.push(iterable[i]); return results; } Function.prototype.bind = function() { var __method = this, args = $A(arguments), object = args.shift(); return function() { return __method.apply(object, args.concat($A(arguments))); } } var imgs = [ {max:'UpLoadFile/200971829115.jpg', min:'UpLoadFile/200972090683.jpg', url:'#', title:'', con:''}, {max:'UpLoadFile/200961634041.jpg', min:'UpLoadFile/200961689439.jpg', url:'#', title:'', con:''}, {max:'UpLoadFile/200971853424.jpg', min:'UpLoadFile/200971822396.jpg', url:'#', title:'', con:''}, {max:'UpLoadFile/200961637013.jpg', min:'UpLoadFile/200961699601.jpg', url:'#', title:'', con:''}, {max:'UpLoadFile/200961631932.jpg', min:'UpLoadFile/200961649915.jpg', url:'#', title:'', con:''}, {max:'UpLoadFile/200961651497.jpg', min:'UpLoadFile/200961653942.jpg', url:'#', title:'', con:''} ]; function Focus(){ this.initialize.apply(this, arguments) }; Focus.prototype = { initialize: function(imgObj, focus, tim, speed){ this.imgs= imgObj; this.tim= tim*1000||2000; this.speed= speed||0.8; this.img_m= null;// 大图 this.img_m2= null;// 大图2 this.lis= [];// 小图列表 this.mask= null;// 蒙板 this.title= null; // 标题 this.con= null;// 内容 this.cur= 0;// 当前位置 this.t= null; // 整体计时 this.tm= null;// mask位置 this.ti= null;// img 切换 this.stoped= true;// 停止状态 this.tem= 0;// 临时数据 this.loaded= {imgs:[], num:0};// 加载进度 this.getElement(document.getElementById(focus)); this.preload(); }, preload: function(){ for(var i=0; i';     this.lis[n].onmouseover= function(){ this.style.border = "0px solid #705F58"; }     this.lis[n].onmouseout= function(){ this.style.border = "0px solid #705F58"; }     this.lis[n].onclick    = function(){ if(oThis.lis[oThis.cur]!= this) oThis.nextFrame.call(oThis, this.n); }     ul.appendChild(this.lis[n]);     };     ds[i].appendChild (this.mask);     ds[i].appendChild (ul);     break;     case 'title':     this.title    = ds[i];     this.title.innerHTML    = this.imgs[0].title;     this.title.parentNode.onmouseover= this.stop.bind(this);     this.title.parentNode.onmouseout= this.start.bind(this);     break;     case 'con':     this.con    = ds[i];     this.con.innerHTML    = this.imgs[0].con;     break; } }, nextFrame: function(n){ if(this.t)clearTimeout(this.t); if(this.tm)clearInterval(this.tm); if(this.ti)clearInterval(this.ti); if(n)this.cur = n-1; var top = 0, posTo = 0; if(n!=0 && this.imgs[this.cur+1]){ posTo = this.lis[this.cur+1].offsetTop; this.cur = this.cur+1; }else{ posTo = this.lis[0].offsetTop; this.cur = 0; } this.tem = this.mask.offsetTop; this.tem > posTo? top = 1 : top = 0; this.tm = setInterval(this.moveTo.bind(this, top, posTo), 25); }, moveTo: function(top, posTo){ if(!top){ if((this.tem+2) >= posTo+1){     clearInterval(this.tm);     this.mask.style.top = posTo+'px';     this.img_swap();     return; } this.tem += (posTo - this.tem) * this.speed }else{ if((this.tem-2) <= posTo-1){     clearInterval(this.tm);     this.mask.style.top = posTo+'px';     this.img_swap();     return; } this.tem -= (this.tem-posTo)*this.speed; } this.mask.style.top = this.tem+'px'; }, img_swap: function(){ var t, b; if(this.img_m.style.zIndex > this.img_m2.style.zIndex){ t = this.img_m; b = this.img_m2; }else{ t = this.img_m2; b = this.img_m; } this.title.innerHTML= ''+this.imgs[this.cur].title+''; this.con.innerHTML= this.imgs[this.cur].con; b.src    = this.imgs[this.cur].max; /MSIE/.test(navigator.userAgent) ? this.tem = t.style.filter ? t.style.filter.replace(/^.+=(\d+).+$/,'$1') : 100 : this.tem = t.style.opacity ? t.style.opacity*100 : 100; if(this.ti)clearInterval(this.ti); this.ti= setInterval(this.img_hid.bind(this, t, b), 25); }, img_hid: function(t,b){ this.tem -= 7; if (/MSIE/.test(navigator.userAgent)) t.style.filter= 'alpha(opacity='+this.tem+')'; else t.style.opacity = this.tem/100; if(this.tem <=0){ clearInterval(this.ti); var tz= t.style.zIndex; var bz= b.style.zIndex; t.style.zIndex= bz b.style.zIndex= tz; if (/MSIE/.test(navigator.userAgent))     t.style.filter= 'alpha(opacity=100)'; else     t.style.opacity= 1; if(this.stoped) return; this.start(); // 继续循环 } }, start: function(){ if(this.t) clearTimeout(this.t); this.t= setTimeout(this.nextFrame.bind(this, null), this.tim); this.stoped = false; }, stop: function(){ clearTimeout(this.t); this.stoped = true; } } window.onload = function(){ var focus = new Focus(imgs,'focus_m'); //focus.start(); }