日期:2014-05-16 浏览次数:20436 次
/** *glide.layerGlide((oEventCont,oSlider,sSingleSize,sec,fSpeed,point); *@param auto type:bolean 是否自动滑动 当值是true的时候 为自动滑动 *@param oEventCont type:object 包含事件点击对象的容器 *@param oSlider type:object 滑动对象 *@param sSingleSize type:number 滑动对象里单个元素的尺寸(width或者height) 尺寸是有point 决定 *@param second type:number 自动滑动的延迟时间 单位/秒 *@param fSpeed type:float 速率 取值在0.05--1之间 当取值是1时 没有滑动效果 *@param point type:string left or top */ var glide = new function () { function $id(id) { return document.getElementById(id); }; this.layerGlide = function (auto, oEventCont, oSlider, sSingleSize, second, fSpeed, point) { var oSubLi = $id(oEventCont).getElementsByTagName('li'); var interval, timeout, oslideRange; var time = 1; var speed = fSpeed var sum = oSubLi.length; var a = 0; var delay = second * 1000; var setValLeft = function (s) { return function () { oslideRange = Math.abs(parseInt($id(oSlider).style[point])); $id(oSlider).style[point] = -Math.floor(oslideRange + (parseInt(s * sSingleSize) - oslideRange) * speed) + 'px'; if (oslideRange == [(sSingleSize * s)]) { clearInterval(interval); a = s; } } }; var setValRight = function (s) { return function () { oslideRange = Math.abs(parseInt($id(oSlider).style[point])); $id(oSlider).style[point] = -Math.ceil(oslideRange + (parseInt(s * sSingleSize) - oslideRange) * speed) + 'px'; if (oslideRange == [(sSingleSize * s)]) { clearInterval(interval); a = s; } } } function autoGlide() { for (var c = 0; c < sum; c++) { oSubLi[c].className = ''; }; clearTimeout(interval); if (a == (parseInt(sum) - 1)) { for (var c = 0; c < sum; c++) { oSubLi[c].className = ''; }; a = 0; oSubLi[a].className = "active"; interval = setInterval(setValLeft(a), time); timeout = setTimeout(autoGlide, delay); } else { a++; oSubLi[a].className = "active"; interval = setInterval(setValRight(a), time); timeout = setTimeout(autoGlide, delay); } } if (auto) { timeout = setTimeout(autoGlide, delay); }; for (var i = 0; i < sum; i++) { oSubLi[i].onmouseover = (function (i) { return function () { for (var c = 0; c < sum; c++) { oSubLi[c].className = ''; }; clearTimeout(timeout); clearInterval(interval); oSubLi[i].className = "active"; if (Math.abs(parseInt($id(oSlider).style[point])) > [(sSingleSize * i)]) { interval = setInterval(setValLeft(i), time); this.onmouseout = function () { if (auto) { timeout = setTimeout(autoGlide, delay); }; }; } else if (Math.abs(parseInt($id(oSlider).style[point])) < [(sSingleSize * i)]) { interval = setInterval(setValRight(i), time); this.onmouseout = function () { if (auto) { timeout = setTimeout(autoGlide, delay); }; }; } } })(i) } } } glide.layerGlide(true, 'icon_num_top', 'show_pic_top', 237, 2, 0.1, 'top');
#