;(function($){ var easeTypeArr=['rollIn','fadeIn','fadeInUp','fadeInDown','fadeInLeft','fadeInRight','fadeInRight','bounceIn','bounceInDown','bounceInUp','bounceInLeft','bounceInRight','rotateIn','rotateInDownLeft','rotateInDownRight','rotateInUpLeft','rotateInUpRight']; var easeTypeNum=easeTypeArr.length;$.fn.oneByOne=function(options){ var settings={className:'oneByOne',sliderClassName:'oneByOne_item',easeType:'fadeInLeft',width:960,height:420,delay:300,tolerance:0.25,enableDrag:true,showArrow:true,showButton:true,slideShow:false,slideShowDelay:3000}; if(options){$.extend(settings,options)}var parent; var _this;var currentBannerNum=-1; var bannerWidth=settings.width;var bannerHeight=settings.height; var xdiff=0; var isMouseDown=false; var isTweenning=false; var realEaseTypeArr=[]; var _easeType; var bannerArr=[]; var bannerNum=0;var _preBannerNum=0,buttonArea,buttonCon,arrowButton; _this=this;_this.wrap('
'); parent=_this.parent(); parent.css('overflow','hidden'); _this.find('.'+settings.sliderClassName).each(function(index){$(this).hide(); bannerNum++;$(this).css('left',bannerWidth*index); bannerArr[index]=$(this)}); if(settings.enableDrag){ _this.mousedown(function(event){ if(!isMouseDown){ isMouseDown=true;this.mouseX=event.pageX } return false}); _this.mousemove(function(event){ if(isMouseDown){ xdiff=event.pageX-this.mouseX; _this.css('left',-currentBannerNum*bannerWidth+xdiff); if(settings.slideShow){stopSlideShow()} } return false}); _this.mouseup(function(event){ isMouseDown=false;var _n=currentBannerNum; if(!xdiff)return false; var fullWidth=parseInt(settings.width); var halfWidth=fullWidth/2; if(-xdiff>halfWidth-fullWidth*settings.tolerance){ _n++;_n=_n>=bannerNum?bannerNum-1:_n; tweenTo(_n)}else if(xdiff>halfWidth-fullWidth*settings.tolerance){ _n--; _n=_n<0?0:_n;tweenTo(_n)} else{ tweenTo(_n); if(settings.slideShow){ startSlideShow()} } xdiff=0; return false}); _this.mouseleave(function(event){ $(this).mouseup()}) } parent.mouseover(function(event){ if(buttonCon)buttonCon.fadeIn(); if(arrowButton)arrowButton.fadeIn()}); parent.mouseleave(function(event){ if(buttonCon)buttonCon.fadeOut(); if(arrowButton)arrowButton.fadeOut()}); if(settings.showButton){ buttonArea=$('
'); parent.append(buttonArea); buttonCon=buttonArea.find('.buttonCon'); for(var i=0;i'+(i+1)+'') .css('cursor','pointer')} $('.buttonCon a:eq('+currentBannerNum+')',buttonArea).addClass('active'); $('.buttonCon a',buttonArea).bind('click',function(event){if($(this).hasClass('active')) return false; var _n=$(this).attr('rel'); tweenTo(_n)}) } if(settings.showArrow){ arrowButton=$('
'); parent.append(arrowButton); var _next=$('.nextArrow',arrowButton).bind('click',function(event){nextBanner()}); var _prev=$('.prevArrow',arrowButton).bind('click',function(event){prevBanner()})} if(buttonCon)buttonCon.hide(); if(arrowButton)arrowButton.hide(); tweenTo(0); if(settings.slideShow){ slideShowInt=setInterval(function(){nextBanner()}, settings.slideShowDelay); _this.data('interval',slideShowInt)} function tweenTo(n){ if(settings.slideShow){ stopSlideShow()}_this.stop(true,true).animate({left:-n*bannerWidth}, settings.delay,function(){ if(n!=currentBannerNum){ _preBannerNum=currentBannerNum; if(bannerArr[_preBannerNum]){ if(!($.browser.msie||$.browser.opera)){bannerArr[_preBannerNum].fadeOut()} $('.buttonArea a:eq('+_preBannerNum+')',parent).removeClass('active')} $('.buttonArea a:eq('+n+')',parent).addClass('active'); if(settings.easeType.toLowerCase()!="random"){ bannerArr[n].show().children().each(function(index){ var userEaseType=$(this).attr('data-ease-type'); if(!userEaseType||userEaseType=='')userEaseType=settings.easeType; if($(this).hasClass(userEaseType)){ $(this).removeClass(userEaseType); $(this).hide()}var _n=index; $(this).show().addClass("animate"+_n+" "+userEaseType)})} else{ _easeType=easeTypeArr[Math.floor(Math.random()*easeTypeNum)]; realEaseTypeArr[n]=_easeType; if(bannerArr[_preBannerNum]){ bannerArr[_preBannerNum].children().each(function(index){ if($(this).hasClass(realEaseTypeArr[_preBannerNum])){ $(this).removeClass(realEaseTypeArr[_preBannerNum]); $(this).hide()}})} bannerArr[n].show().children().each(function(index){ var _n=index; $(this).show().addClass("animate"+_n+" "+_easeType)})}_this.delay(bannerArr[n].children().length*200).queue(function(){if(settings.slideShow)startSlideShow()}); if(arrowButton)arrowButton.css('cursor','pointer'); currentBannerNum=n}})} function stopSlideShow(){ clearInterval(_this.data('interval'))} function startSlideShow(){ clearInterval(_this.data('interval')); slideShowInt=setInterval(function(){nextBanner()},settings.slideShowDelay); _this.data('interval',slideShowInt)} function nextBanner(){ var _n=currentBannerNum; _n++; _n=_n>=bannerNum?0:_n;tweenTo(_n)}function prevBanner(){ var _n=currentBannerNum;_n--; _n=_n<0?bannerNum-1:_n; tweenTo(_n)}return this}}) (jQuery);