Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

acc

Stop on mouseover

Recommended Posts

Boa noite, instalei um plugin de um slider no WP que possui o script abaixo. Tentei de todas as formas que conheço, colocar stop .hover ou .mouseover, sem sucesso, será que alguém pode me auxiliar?

 

Agradeço.

 

(function($) {

var types = ['DOMMouseScroll', 'mousewheel'];

$.event.special.mousewheel = {
setup: function() {
	if ( this.addEventListener )
		for ( var i=types.length; i; )
			this.addEventListener( types[--i], handler, false );
	else
		this.onmousewheel = handler;
},

teardown: function() {
	if ( this.removeEventListener )
		for ( var i=types.length; i; )
			this.removeEventListener( types[--i], handler, false );
	else
		this.onmousewheel = null;
}
};

$.fn.extend({
mousewheel: function(fn) {
	return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel");
},

unmousewheel: function(fn) {
	return this.unbind("mousewheel", fn);
}
});


function handler(event) {
var args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true;

event = $.event.fix(event || window.event);
event.type = "mousewheel";

if ( event.wheelDelta ) delta = event.wheelDelta/120;
if ( event.detail     ) delta = -event.detail/3;

// Add events and delta to the front of the arguments
args.unshift(event, delta);

return $.event.handle.apply(this, args);
}

})(jQuery);

(function($) {
 $.fn.lofJSidernews = function( settings ) {
 	return this.each(function() {
		// get instance of the lofSiderNew.
		new  $.lofSidernews( this, settings ); 
	});
	 }
 $.lofSidernews = function( obj, settings ){
	this.settings = {
		direction	    	: '',
		mainItemSelector    : 'li',
		navInnerSelector	: 'ul',
		navSelector  		: 'li' ,
		navigatorEvent		: 'click',
		wapperSelector: 	'.lof-main-wapper',
		interval	  	 	: 4000,
		auto			    : true, // whether to automatic play the slideshow
		maxItemDisplay	 	: 3,
		startItem			: 0,
		navPosition			: 'vertical', 
		navigatorHeight		: 100,
		navigatorWidth		: 310,
		duration			: 600,
		navItemsSelector    : '.lof-navigator li',
		navOuterSelector    : '.lof-navigator-outer' ,
		isPreloaded			: true,
		easing				: 'easeInOutQuad'
	}	
	$.extend( this.settings, settings ||{} );	
	this.nextNo         = null;
	this.previousNo     = null;
	this.maxWidth  = this.settings.mainWidth || 600;
	this.wrapper = $( obj ).find( this.settings.wapperSelector );
	this.slides = this.wrapper.find( this.settings.mainItemSelector );
	if( !this.wrapper.length || !this.slides.length ) return ;
	// set width of wapper
	if( this.settings.maxItemDisplay > this.slides.length ){
		this.settings.maxItemDisplay = this.slides.length;	
	}
	this.currentNo      = isNaN(this.settings.startItem)||this.settings.startItem > this.slides.length?0:this.settings.startItem;
	this.navigatorOuter = $( obj ).find( this.settings.navOuterSelector );	
	this.navigatorItems = $( obj ).find( this.settings.navItemsSelector ) ;
	this.navigatorInner = this.navigatorOuter.find( this.settings.navInnerSelector );

	if( this.settings.navPosition == 'horizontal' ){ 
		this.navigatorInner.width( this.slides.length * this.settings.navigatorWidth );
		this.navigatorOuter.width( this.settings.maxItemDisplay * this.settings.navigatorWidth );
		this.navigatorOuter.height(	this.settings.navigatorHeight );

	} else {
		this.navigatorInner.height( this.slides.length * this.settings.navigatorHeight );	

		this.navigatorOuter.height( this.settings.maxItemDisplay * this.settings.navigatorHeight );
		this.navigatorOuter.width(	this.settings.navigatorWidth );
	}		
	this.navigratorStep = this.__getPositionMode( this.settings.navPosition );		
	this.directionMode = this.__getDirectionMode();  


	if( this.settings.direction == 'opacity') {
     var text = '.lof-main-item-desc';
		this.wrapper.addClass( 'lof-opacity' );
		$(this.slides).css({'opacity':0, 'display':'none'}).eq(this.currentNo).css({'opacity':1, 'display':'block'});
		$(this.wrapper).find(text).slideUp().eq(this.currentNo).slideDown();
	} else { 
     var text = '.lof-main-item-desc';
		this.wrapper.css({'left':'-'+this.currentNo*this.maxSize+'px', 'width':(/>/> this.maxWidth ) * this.slides.length } );
		$(this.wrapper).find(text).show();
	}


	if( this.settings.isPreloaded ) {
		this.preLoadImage( this.onComplete );
	} else {
		this.onComplete();
	}

 }
    $.lofSidernews.fn =  $.lofSidernews.prototype;
    $.lofSidernews.fn.extend =  $.lofSidernews.extend = $.extend;

 $.lofSidernews.fn.extend({

	startUp:function( obj, wrapper ) {

		this.navigatorItems.each( function(index, item ){
			$(item).click( function(){
				obj.jumping( index, true );
				obj.setNavActive( index, item );					
			} );
			$(item).css( {'height': obj.settings.navigatorHeight, 'width':  obj.settings.navigatorWidth} );
		})
		this.navigatorItems.find('img').hover(function(){ $(this).stop().animate({'opacity':0.7},500,'easeInOutQuad') },

function(){  $(this).animate({'opacity':1},500,'easeInOutSine') } );
		this.registerWheelHandler( this.navigatorOuter, this );
		this.setNavActive(this.currentNo );

		if( this.settings.buttons && typeof (this.settings.buttons) == "object" ){
			this.registerButtonsControl( 'click', this.settings.buttons, this );

		}
		if( this.settings.auto )

		this.play( this.settings.interval,'next', true );

		return this;
	},
	onComplete:function(){

		setTimeout( function(){ $('.preload').fadeOut( 900 ); }, 400 );	this.startUp( this );
	},
	preLoadImage:function(  callback ){
		var self = this;
		var images = this.wrapper.find('img');
		var count = 0;
		images.one('load', function() {
			count++;
			if(count == images.length) {
				self.onComplete();
			}
		}).each(function(){
			if(this.complete || (jQuery.browser.msie && parseInt(jQuery.browser.version) >= 6)) 
				$(this).trigger('load');
		});	
	},
	navivationAnimate:function( currentIndex ) { 
		if (currentIndex <= this.settings.startItem 
			|| currentIndex - this.settings.startItem >= this.settings.maxItemDisplay-1) {
				this.settings.startItem = currentIndex - this.settings.maxItemDisplay+2;
				if (this.settings.startItem < 0) this.settings.startItem = 0;
				if (this.settings.startItem >this.slides.length-this.settings.maxItemDisplay) {
					this.settings.startItem = this.slides.length-this.settings.maxItemDisplay;
				}
		}		
		this.navigatorInner.stop().animate( eval('({'+this.navigratorStep[0]+':-'+this.settings.startItem*this.navigratorStep[1]+'})'), 
											{duration:500, easing:'easeInOutQuad'} );	
	},
	setNavActive:function( index, item ){
		if( (this.navigatorItems) ){ 
			this.navigatorItems.removeClass( 'active' );
			$(this.navigatorItems.get(index)).addClass( 'active' );	
			this.navivationAnimate( this.currentNo );	
		}
	},
	__getPositionMode:function( position ){
		if(	position  == 'horizontal' ){
			return ['left', this.settings.navigatorWidth];
		}
		return ['top', this.settings.navigatorHeight];
	},
	__getDirectionMode:function(){
		switch( this.settings.direction ){
			case 'opacity': this.maxSize=0; return ['opacity','opacity'];
			default: this.maxSize=this.maxWidth; return ['left','width'];
		}
	},
	registerWheelHandler:function( element, obj ){ 
		 element.bind('mousewheel', function(event, delta ) {
			var dir = delta > 0 ? 'Up' : 'Down',
				vel = Math.abs(delta);
			if( delta > 0 ){
				obj.previous( true );
			} else {
				obj.next( true );
			}
			return false;
		});
	},
	registerButtonsControl:function( eventHandler, objects, self ){ 
		for( var action in objects ){ 
			switch (action.toString() ){
				case 'next':
					objects[action].click( function() { self.next( true) } );
					break;
				case 'previous':
					objects[action].click( function() { self.previous( true) } );
					break;
			}
		}
		return this;	
	},
	onProcessing:function( manual, start, end ){	 		
		this.previousNo = this.currentNo + (this.currentNo>0 ? -1 : this.slides.length-1);
		this.nextNo 	= this.currentNo + (this.currentNo < this.slides.length-1 ? 1 : 1- this.slides.length);				
		return this;
	},
	finishFx:function( manual ){
		if( manual ) this.stop();
		if( manual && this.settings.auto ){ 
			this.play( this.settings.interval,'next', true );
		}		
		this.setNavActive( this.currentNo );	
	},
	getObjectDirection:function( start, end ){
		return eval("({'"+this.directionMode[0]+"':-"+(this.currentNo*start)+"})");	
	},
	fxStart:function( index, obj, currentObj ){
			if( this.settings.direction == 'opacity' ) {
			var text = '.lof-main-item-desc';
         $(text).slideUp(200);
				$(this.slides).stop().animate({opacity:0}, {
				duration: this.settings.duration, 
				easing:this.settings.easing,
				complete:function(){
           $(this).css({'display':'none'});
           } 
         });
				$(this.slides).eq(index).stop().animate( {opacity:1}, {
				duration: this.settings.duration, 
				easing:this.settings.easing,
				step:function(){
           $(this).css({'display':'block'})
           },
         complete:function(){
             $(this).find(text).slideDown(200);
           }
         });
			}else {
			var text = '.lof-main-item-desc';
         $(this.wrapper).find(text).slideUp(200); 
				this.wrapper.stop().animate( obj, {
           duration: this.settings.duration, 
           easing:this.settings.easing, 
           complete:function() {
             $(this).find(text).slideDown(200); } });
			}
		return this;
	},
	jumping:function( no, manual ){
		this.stop(); 
		if( this.currentNo == no ) return;		
		 var obj = eval("({'"+this.directionMode[0]+"':-"+(this.maxSize*no)+"})");
		this.onProcessing( null, manual, 0, this.maxSize )
			.fxStart( no, obj, this )
			.finishFx( manual );	
			this.currentNo  = no;
	},
	next:function( manual , item){

		this.currentNo += (this.currentNo < this.slides.length-1) ? 1 : (1 - this.slides.length);	
		this.onProcessing( item, manual, 0, this.maxSize )
			.fxStart( this.currentNo, this.getObjectDirection(this.maxSize ), this )
			.finishFx( manual );
	},
	previous:function( manual, item ){
		this.currentNo += this.currentNo > 0 ? -1 : this.slides.length - 1;
		this.onProcessing( item, manual )
			.fxStart( this.currentNo, this.getObjectDirection(this.maxSize ), this )
			.finishFx( manual	);			
	},
	play:function( delay, direction, wait ){	
		this.stop(); 
		if(!wait){ this[direction](false); }
		var self  = this;
		this.isRun = setTimeout(function() { self[direction](true); }, delay);
	},
	stop:function(){ 
		if (this.isRun == null) return;
		clearTimeout(this.isRun);
           this.isRun = null; 
	}
})
})(jQuery)

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz um teste com essa função:

function stopSlide(){
 clearTimeout(obj.isRun);
}

 

coloque a função acima dessa linha:

})(jQuery)

 

 

aí você chama a função stopSlide(); para parar o slide, espero que de certo

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz um teste com essa função:

function stopSlide(){
 clearTimeout(obj.isRun);
}

 

coloque a função acima dessa linha:

})(jQuery)

 

 

aí você chama a função stopSlide(); para parar o slide, espero que de certo

 

Cara, tentei aqui e infelizmente não deu certo.

 

Tem um erro de sintaxe aqui:

 

'width':(/>/>/>/>/> this.maxWidth )

remova isto />/>/>

 

Acho que isso aí foi um bug do iMasters, no código não existe isso.

 

Isso que eu pretendo colocar, funcionaria como um mecanismo de pausa quando o usuário por o mouse em cima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.