par
Tordjam » 23 juil. 2012, 20:38
Bonjour,
Je travaille actuellement sur mon site internet et je suis malheureusement bloqué sur mon script.
Je travaille tous simplement sur une Galerie photo et j'ai un problème avec setInterval et clearInterval.
Quand je stop setInterval tout va bien, lorsque je refais partir setIntreval tous se gatte, le code me fait n'importe quoi.
Si quelqu'un pouvez jeter un coup d'oeil sur se script et me donner quelque petit conseil ça serait sympa.
Merci
[javascript]
function BuzzGalerie(options){
//*** Variable ***\\
var Defilement;
var DivBuzzGalerieSlide = $('#buzz_galerie_slide');
var DivBuzzGalerieSlideMin = $('#buzz_galerie_slide_min');
var NbrsSlide = DivBuzzGalerieSlide.find('ul li').length;
var SlideNext = eval((options.current*1)+(1*1));
//*** Défilement automatique des images ***\\
function DefilementBuzzGalerie(){
if(NbrsSlide < SlideNext ){
SlideNext = 1;
options.current = NbrsSlide;
}
$('#BuzzGalerieLi_'+SlideNext).animate({left: 0}, options.vtslide, function(){
BuzzGalerieCssButtom(options.current);
BuzzGalerieInfos(SlideNext);
});
$('#BuzzGalerieLi_'+options.current).animate({left: 500}, options.vtslide, function(){
$(this).css({left : -500});
});
SlideNext = SlideNext+1;
options.current = SlideNext-1;
}
//*** Initalisation des elements ***\\
DivBuzzGalerieSlide.find('ul li').each(function(i){
var i = i+1;
$(this).attr('id', 'BuzzGalerieLi_'+i).css({left : -500});
var BuzzGalerieImgSrc = $(this).find('a img').attr('src').split('.');
DivBuzzGalerieSlideMin.find('ul').append('<li><img src="'+BuzzGalerieImgSrc[0]+'_min.jpg" width="120" height="60" /></li>');
DivBuzzGalerieSlideMin.find('ul li').css({opacity: 0.40});
});
$('#BuzzGalerieLi_'+options.current).css({left : 0});
BuzzGalerieCssButtom(options.current);
BuzzGalerieInfos(options.current);
DivBuzzGalerieSlideMin.find('ul li').each(function(i){
var i = i+1;
$(this).attr('id', 'BuzzGalerieButtomLi_'+i);
//*** Click sur les Buttoms Images ***\\
$(this).click(function(){
clearInterval(Defilement);
if(options.current != i){
$('#BuzzGalerieLi_'+i).animate({left: 0}, options.vtslide, function(){
/*Reprise du setInterval ????? Beug Oups !! Merte!!!*/
$('.buzz_galerie_infos').click(function(){
SlideNext = i+1;
options.current = SlideNext-1;
Defilement = setInterval(DefilementBuzzGalerie, options.vts);
});
BuzzGalerieCssButtom(i);
BuzzGalerieInfos(i);
});
$('#BuzzGalerieLi_'+options.current).animate({left: 500}, options.vtslide, function(){
$(this).css({left : -500});
});
options.current = i;
return false;
}
});
});
//*** Style des Buttoms Img au passage de la sourie ***\\
DivBuzzGalerieSlideMin.find('ul li').mouseenter(function(){
var VerifId = $(this).attr('id').split('_')[1];
if(VerifId != options.current)$(this).animate({opacity: 0.80}, 200);
}).mouseleave(function(){
var VerifId = $(this).attr('id').split('_')[1];
if(VerifId != options.current)$(this).animate({opacity: 0.40}, 200);
});
//*** Function Attaché ***\\
function BuzzGalerieCssButtom(i){
DivBuzzGalerieSlideMin.find('ul li').animate({opacity: 0.20}, 200, function(){
$('#BuzzGalerieButtomLi_'+i).animate({opacity: 1}, 200);
});
}
//*** Function Attaché ***\\
function BuzzGalerieInfos(i){
$('.buzz_galerie_infos').slideUp(50, function(){$(this).slideDown(800);});
}
Defilement = setInterval(DefilementBuzzGalerie, options.vts);
}[/javascript]
Bonjour,
Je travaille actuellement sur mon site internet et je suis malheureusement bloqué sur mon script.
Je travaille tous simplement sur une Galerie photo et j'ai un problème avec setInterval et clearInterval.
Quand je stop setInterval tout va bien, lorsque je refais partir setIntreval tous se gatte, le code me fait n'importe quoi.
Si quelqu'un pouvez jeter un coup d'oeil sur se script et me donner quelque petit conseil ça serait sympa.
Merci
[javascript]
function BuzzGalerie(options){
//*** Variable ***\\
var Defilement;
var DivBuzzGalerieSlide = $('#buzz_galerie_slide');
var DivBuzzGalerieSlideMin = $('#buzz_galerie_slide_min');
var NbrsSlide = DivBuzzGalerieSlide.find('ul li').length;
var SlideNext = eval((options.current*1)+(1*1));
//*** Défilement automatique des images ***\\
function DefilementBuzzGalerie(){
if(NbrsSlide < SlideNext ){
SlideNext = 1;
options.current = NbrsSlide;
}
$('#BuzzGalerieLi_'+SlideNext).animate({left: 0}, options.vtslide, function(){
BuzzGalerieCssButtom(options.current);
BuzzGalerieInfos(SlideNext);
});
$('#BuzzGalerieLi_'+options.current).animate({left: 500}, options.vtslide, function(){
$(this).css({left : -500});
});
SlideNext = SlideNext+1;
options.current = SlideNext-1;
}
//*** Initalisation des elements ***\\
DivBuzzGalerieSlide.find('ul li').each(function(i){
var i = i+1;
$(this).attr('id', 'BuzzGalerieLi_'+i).css({left : -500});
var BuzzGalerieImgSrc = $(this).find('a img').attr('src').split('.');
DivBuzzGalerieSlideMin.find('ul').append('<li><img src="'+BuzzGalerieImgSrc[0]+'_min.jpg" width="120" height="60" /></li>');
DivBuzzGalerieSlideMin.find('ul li').css({opacity: 0.40});
});
$('#BuzzGalerieLi_'+options.current).css({left : 0});
BuzzGalerieCssButtom(options.current);
BuzzGalerieInfos(options.current);
DivBuzzGalerieSlideMin.find('ul li').each(function(i){
var i = i+1;
$(this).attr('id', 'BuzzGalerieButtomLi_'+i);
//*** Click sur les Buttoms Images ***\\
$(this).click(function(){
clearInterval(Defilement);
if(options.current != i){
$('#BuzzGalerieLi_'+i).animate({left: 0}, options.vtslide, function(){
/*Reprise du setInterval ????? Beug Oups !! Merte!!!*/
$('.buzz_galerie_infos').click(function(){
SlideNext = i+1;
options.current = SlideNext-1;
Defilement = setInterval(DefilementBuzzGalerie, options.vts);
});
BuzzGalerieCssButtom(i);
BuzzGalerieInfos(i);
});
$('#BuzzGalerieLi_'+options.current).animate({left: 500}, options.vtslide, function(){
$(this).css({left : -500});
});
options.current = i;
return false;
}
});
});
//*** Style des Buttoms Img au passage de la sourie ***\\
DivBuzzGalerieSlideMin.find('ul li').mouseenter(function(){
var VerifId = $(this).attr('id').split('_')[1];
if(VerifId != options.current)$(this).animate({opacity: 0.80}, 200);
}).mouseleave(function(){
var VerifId = $(this).attr('id').split('_')[1];
if(VerifId != options.current)$(this).animate({opacity: 0.40}, 200);
});
//*** Function Attaché ***\\
function BuzzGalerieCssButtom(i){
DivBuzzGalerieSlideMin.find('ul li').animate({opacity: 0.20}, 200, function(){
$('#BuzzGalerieButtomLi_'+i).animate({opacity: 1}, 200);
});
}
//*** Function Attaché ***\\
function BuzzGalerieInfos(i){
$('.buzz_galerie_infos').slideUp(50, function(){$(this).slideDown(800);});
}
Defilement = setInterval(DefilementBuzzGalerie, options.vts);
}[/javascript]