You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.9 KiB
JavaScript
84 lines
2.9 KiB
JavaScript
/**
|
|
** 公用滚动方法
|
|
** 支持定时自动轮播、前后轮播、单独点击轮播
|
|
**/
|
|
(function($){
|
|
|
|
$("div[data-scro='controler'] b,div[data-scro='controler2'] a").click(function(){
|
|
var T = $(this);
|
|
if(T.attr("class")=="down") return false;
|
|
J2ROLLING_ANIMATION.st({
|
|
findObject : T, //当前点击对象 默认写
|
|
main : T.parent().parent().find("div[data-scro='list']"), //滚动目标容器窗口对象
|
|
pagSource : T.parent().parent().find("div[data-scro='controler'] b"), //切换按钮对象
|
|
className : "down", //选中的样式
|
|
duration : "slow", //滚动速度 和jquery速度一致
|
|
on : $(this)[0].tagName=="A" ? true : false //用于判断是否开启无限滚动 or 来回切换
|
|
});
|
|
return false;
|
|
});
|
|
|
|
var J2SETTIME="", J2Time=true,J2ROLLING_ANIMATION = {
|
|
init : function(){
|
|
this.start();
|
|
this.time();
|
|
},
|
|
st : function(o){
|
|
if(J2Time){
|
|
this.animate(o.findObject,o.main,o.className,o.duration,o.pagSource,o.on);
|
|
J2Time = false;
|
|
}
|
|
},
|
|
animate : function(T,M,C,S,P,O){
|
|
var _prevDown = O ? P.parent().find("*[class='"+C+"']") : T.parent().find(T[0].tagName+"[class='"+C+"']"),
|
|
_prevIndex = _prevDown.index(),
|
|
_thisIndex = O ? (T.attr("class")=="next" ? _prevIndex+1 : _prevIndex-1) : T.index(),
|
|
_list = M.find(".item"),
|
|
p2n = 1;
|
|
_prevDown.removeClass(C);
|
|
if(O){
|
|
if(_thisIndex==-1) _thisIndex=_list.size()-1;
|
|
if(_thisIndex==_list.size()) _thisIndex=0;
|
|
P.eq(_thisIndex).addClass(C);
|
|
}else{
|
|
T.addClass(C);
|
|
}
|
|
if(T.attr("class")=="prev" || _thisIndex<_prevIndex) p2n = false;
|
|
if((T.attr("class")=="next" || _thisIndex>_prevIndex)&&T.attr("class")!="prev") p2n = true;
|
|
|
|
!p2n ? _list.eq(_thisIndex).css("left",-M.width()) : '';
|
|
_list.eq(_prevIndex).animate({left:p2n ? -M.width() : M.width()},S,function(){
|
|
$(this).removeAttr("style");
|
|
J2Time = true;
|
|
});
|
|
_list.eq(_thisIndex).animate({left:"0px"},S);
|
|
},
|
|
start : function(){
|
|
$("#section-focus-pic div[data-scro='controler'] b,#section-focus-pic div[data-scro='controler2'] a").mouseover(function(){
|
|
window.clearInterval(J2SETTIME);
|
|
}).mouseout(function(){
|
|
J2ROLLING_ANIMATION.time();
|
|
});
|
|
},
|
|
time : function(){
|
|
J2SETTIME = window.setInterval(function(){
|
|
var num = $("#section-focus-pic div[data-scro='controler'] b[class='down']").index(),
|
|
_list = $("#section-focus-pic div[data-scro='list'] li");
|
|
_list.eq(num).animate({"left":-$("#section-focus-pic div[data-scro='list']").width()},"slow",function(){
|
|
$(this).removeAttr("style");
|
|
$("#section-focus-pic div[data-scro='controler'] b").removeClass("down").eq(num).addClass("down");
|
|
});
|
|
num++;
|
|
if(num==_list.size()){
|
|
num=0;
|
|
}
|
|
_list.eq(num).animate({"left":"0px"},"slow");
|
|
},2000);
|
|
}
|
|
};
|
|
$("a").click(function(){
|
|
$(this).blur();
|
|
});
|
|
|
|
J2ROLLING_ANIMATION.init(); //是否开启自动轮播
|
|
})(this.jQuery || this.baidu); |