/*!
* cxScroll 1.0.0
* DownLoad by www.97zzw.com
*/
(function($){
$.fn.cxScroll=function(settings){
if(!this.length){return;};
settings=$.extend({},$.cxScroll.defaults,settings);
var obj=this;
var scroller={};
scroller.fn={};
scroller.box=obj.find(".company_structure");
scroller.list=scroller.box.find(".company_list");
scroller.items=scroller.list.find("li");
scroller.itemSum=scroller.items.length;
if(scroller.itemSum<=1){return;};
scroller.plusBtn=obj.find(".plus");
scroller.minusBtn=obj.find(".minus");
scroller.itemWidth=scroller.items.outerWidth(true);
scroller.itemHeight=scroller.items.outerHeight();
if(settings.direction=="left"||settings.direction=="right"){
if(scroller.itemWidth*scroller.itemSum<=scroller.box.outerWidth(true)){return;};
scroller.plusVal="left";
scroller.minusVal="right";
scroller.moveVal=scroller.itemWidth;
}else{
if(scroller.itemHeight*scroller.itemSum<=scroller.box.outerHeight()){return;};
scroller.plusVal="top";
scroller.minusVal="bottom";
scroller.moveVal=scroller.itemHeight;
};
// 鍏冪礌锛氬乏鍙虫搷浣滄寜閽
if(settings.plus&&!scroller.plusBtn.length){
scroller.plusBtn=$("",{"class":"plus"}).appendTo(obj);
};
if(settings.minus&&!scroller.minusBtn.length){
scroller.minusBtn=$("",{"class":"minus"}).appendTo(obj);
};
// 鍏冪礌锛氬悗琛
scroller.list.append(scroller.list.html());
// 鏂规硶锛氬紑濮
scroller.fn.on=function(){
if(!settings.auto){return;};
scroller.fn.off();
scroller.run=setTimeout(function(){
scroller.fn.goto(settings.direction);
},settings.time);
};
// 鏂规硶锛氬仠姝
scroller.fn.off=function(){
if(typeof(scroller.run)!=="undefined"){clearTimeout(scroller.run);};
};
// 鏂规硶锛氬鍔犳帶鍒
scroller.fn.addControl=function(){
if(settings.plus&&scroller.minusBtn.length){
scroller.plusBtn.bind("click",function(){
scroller.fn.goto(scroller.plusVal);
});
};
if(settings.minus&&scroller.minusBtn.length){
scroller.minusBtn.bind("click",function(){
scroller.fn.goto(scroller.minusVal);
});
};
};
// 鏂规硶锛氳В闄ゆ帶鍒
scroller.fn.removeControl=function(){
if(scroller.plusBtn.length){scroller.plusBtn.unbind("click");};
if(scroller.minusBtn.length){scroller.minusBtn.unbind("click");};
};
// 鏂规硶锛氭粴鍔
scroller.fn.goto=function(d){
scroller.fn.off();
scroller.fn.removeControl();
scroller.box.stop(true);
var _max; // _max 婊氬姩鐨勬渶澶ч檺搴
var _dis; // _dis 婊氬姩鐨勮窛绂
switch(d){
case "left":
case "top":
_max=0;
if(d=="left"){
if(parseInt(scroller.box.scrollLeft(),10)==0){
scroller.box.scrollLeft(scroller.itemSum*scroller.moveVal);
};
_dis=scroller.box.scrollLeft()-(scroller.moveVal*settings.step);
if(_dis<_max){_dis=_max};
scroller.box.animate({"scrollLeft":_dis},settings.speed,function(){
if(parseInt(scroller.box.scrollLeft(),10)<=_max){
scroller.box.scrollLeft(0);
};
scroller.fn.addControl();
});
}else{
if(parseInt(scroller.box.scrollTop(),10)==0){
scroller.box.scrollTop(scroller.itemSum*scroller.moveVal);
};
_dis=scroller.box.scrollTop()-(scroller.moveVal*settings.step);
if(_dis<_max){_dis=_max};
scroller.box.animate({"scrollTop":_dis},settings.speed,function(){
if(parseInt(scroller.box.scrollTop(),10)<=_max){
scroller.box.scrollTop(0);
};
scroller.fn.addControl();
});
};
break;
case "right":
case "bottom":
_max=scroller.itemSum*scroller.moveVal;
if(d=="right"){
_dis=scroller.box.scrollLeft()+(scroller.moveVal*settings.step);
if(_dis>_max){_dis=_max};
scroller.box.animate({"scrollLeft":_dis},settings.speed,function(){
if(parseInt(scroller.box.scrollLeft(),10)>=_max){
scroller.box.scrollLeft(0);
};
});
}else{
_dis=scroller.box.scrollTop()+(scroller.moveVal*settings.step);
if(_dis>_max){_dis=_max};
scroller.box.animate({"scrollTop":_dis},settings.speed,function(){
if(parseInt(scroller.box.scrollTop(),10)>=_max){
scroller.box.scrollTop(0);
};
});
};
break;
};
scroller.box.queue(function(){
scroller.fn.addControl();
scroller.fn.on();
$(this).dequeue();
});
};
// 浜嬩欢锛氶紶鏍囩Щ鍏ュ仠姝紝绉诲嚭寮€濮
scroller.box.hover(function(){
scroller.fn.off();
},function(){
scroller.fn.on();
});
scroller.fn.addControl();
scroller.fn.on();
};
// 榛樿鍊
$.cxScroll={defaults:{
direction:"right", // 婊氬姩鏂瑰悜
step:1, // 婊氬姩姝ラ暱
speed:800, // 婊氬姩閫熷害
time:4000, // 鑷姩婊氬姩闂撮殧鏃堕棿
auto:true, // 鏄惁鑷姩婊氬姩
plus:true, // 鏄惁浣跨敤 plus 鎸夐挳
minus:true // 鏄惁浣跨敤 minus 鎸夐挳
}};
})(jQuery);