Hola a todos! es la primera vez que posteo asi que tratare de ser lo mas concreto posible.
estoy trabajando sobre un sitio web que desarrollaron terceros, y estoy perdido con un plugin.
estamos usando el plugin que ya tenia el sitio, el cual hace un FADER de banners en el home. incluye boton de next, previous y navegador
adjunto el plugin
Código:
// slideshow plugin
jQuery.fn.fadeGallery = function(_options){
var _options = jQuery.extend({
slideElements:'div.slideset > div',
pagerLinks:'div.pager a',
btnNext:'a.next',
btnPrev:'a.prev',
btnPlayPause:'a.play-pause',
pausedClass:'paused',
playClass:'playing',
activeClass:'active',
activePagerClass:'active',
pauseOnHover:true,
autoRotation:false,
autoHeight:false,
switchTime:3000,
duration:650,
event:'click'
},_options);
return this.each(function(){
// gallery options
var _this = jQuery(this);
var _slides = jQuery(_options.slideElements, _this);
var _pagerLinks = jQuery(_options.pagerLinks, _this);
var _btnPrev = jQuery(_options.btnPrev, _this);
var _btnNext = jQuery(_options.btnNext, _this);
var _btnPlayPause = jQuery(_options.btnPlayPause, _this);
var _pauseOnHover = _options.pauseOnHover;
var _autoRotation = _options.autoRotation;
var _activeClass = _options.activeClass;
var _activePagerClass = _options.activePagerClass;
var _pausedClass = _options.pausedClass;
var _playClass = _options.playClass;
var _autoHeight = _options.autoHeight;
var _duration = _options.duration;
var _switchTime = _options.switchTime;
var _controlEvent = _options.event;
// gallery init
var _hover = false;
var _prevIndex = 0;
var _currentIndex = 0;
var _slideCount = _slides.length;
var _timer;
if(!_slideCount) return;
_slides.hide().eq(_currentIndex).show();
if(_autoRotation) _this.removeClass(_pausedClass).addClass(_playClass);
else _this.removeClass(_playClass).addClass(_pausedClass);
// gallery control
if(_btnPrev.length) {
_btnPrev.bind(_controlEvent,function(){
prevSlide();
return false;
});
}
if(_btnNext.length) {
_btnNext.bind(_controlEvent,function(){
nextSlide();
return false;
});
}
if(_slideCount < 2){ //by rod
_autoRotation=false;
//$('.gallery-nav').hide();
// alert('son banners:'+ _pagerLinks.length);
};
if(_pagerLinks.length > 1) {
_pagerLinks.each(function(_ind){
jQuery(this).bind(_controlEvent,function(){
if(_currentIndex != _ind) {
_prevIndex = _currentIndex;
_currentIndex = _ind;
switchSlide();
}
return false;
});
});
}
// play pause section
if(_btnPlayPause.length) {
_btnPlayPause.bind(_controlEvent,function(){
if(_this.hasClass(_pausedClass)) {
_this.removeClass(_pausedClass).addClass(_playClass);
_autoRotation = true;
autoSlide();
} else {
if(_timer) clearTimeout(_timer);
_this.removeClass(_playClass).addClass(_pausedClass);
}
return false;
});
}
// gallery animation
function prevSlide() {
_prevIndex = _currentIndex;
if(_currentIndex > 0) _currentIndex--;
else _currentIndex = _slideCount-1;
switchSlide();
}
function nextSlide() {
_prevIndex = _currentIndex;
if(_currentIndex < _slideCount-1) _currentIndex++;
else _currentIndex = 0;
switchSlide();
}
function refreshStatus() {
if(_pagerLinks.length) _pagerLinks.removeClass(_activePagerClass).eq(_currentIndex).addClass(_activePagerClass);
_slides.eq(_prevIndex).removeClass(_activeClass);
_slides.eq(_currentIndex).addClass(_activeClass);
}
function switchSlide() {
_slides.eq(_prevIndex).fadeOut(_duration);
_slides.eq(_currentIndex).fadeIn(_duration);
if(_autoHeight) _slides.eq(_currentIndex).parent().animate({height:_slides.eq(_currentIndex).outerHeight(true)},{duration:_duration,queue:false});
refreshStatus();
autoSlide();
}
// autoslide function
function autoSlide() {
if(!_autoRotation || _hover) return;
if(_timer) clearTimeout(_timer);
_timer = setTimeout(nextSlide,_switchTime+_duration);
}
if(_pauseOnHover) {
_this.hover(function(){
_hover = true;
if(_timer) clearTimeout(_timer);
},function(){
_hover = false;
autoSlide();
});
}
refreshStatus();
autoSlide();
});
}
y la llamada a dicho plugin seria la siguiente:
Código :
Código:
$('div.gallery').fadeGallery({
slideElements:'div.slider > div',
pagerLinks:'ul.gallery-nav li',
activeClass:'active-slide',
pauseOnHover:true,
autoRotation:true,
autoHeight:false,
switchTime:5000,
duration:650
});
lo que necesito hacer, es simplemente llamar la funcion prevSlide() o nextSlide() una vez que se inicializo el plugin.
ejemplo: tengo un excuchador de eventos en un banner flash.. que al terminar determinada accion debe llamar a nextSlide() para que cambie de banner..
actualmente esta funcion solo funciona si existe un elemento <a> con id "next" y en el caso que necesito no hay ningun A. solo la llamada a la funcion
espero haber sido claro a pesar de lo perdido que estoy.
Saludos y muchas gracias