日期:2014-05-16 浏览次数:20515 次
/**
*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');
#