[AIDE] Problème de carrousel
Dernière réponse : dans Programmation
Salut !
J'ai suivi un tuto pour réaliser un carrousel, tout c'est bien passé j'ai réussi à en créer un.
J'ai fait un espace d'administration pour ce carrousel. L'espace d'administration me sert à ajouter,modifier ou supprimer des articles. Pour ces fonctions tous ce passe bien.
Seulement maintenant mon caroussel déconne un peu.
Il triple mes news (123123123) et elle ne s'affichent pas très bien (news1 news2 news2 titrenews1 seulement).
Il doit avoir un dysfonctionnement mais je ne sais pas où.
Voici mes sources (pas encore sur le net) :
- vues du carrousel:
- Javascript du carrousel
Du coté administration tous ce passe bien donc je ne croit pas que ça vient de là.
Je demande votre aide. Merci d'avance.
J'ai suivi un tuto pour réaliser un carrousel, tout c'est bien passé j'ai réussi à en créer un.
J'ai fait un espace d'administration pour ce carrousel. L'espace d'administration me sert à ajouter,modifier ou supprimer des articles. Pour ces fonctions tous ce passe bien.
Seulement maintenant mon caroussel déconne un peu.
Il triple mes news (123123123) et elle ne s'affichent pas très bien (news1 news2 news2 titrenews1 seulement).
Il doit avoir un dysfonctionnement mais je ne sais pas où.
Voici mes sources (pas encore sur le net) :
- vues du carrousel:
<head> <link rel="stylesheet" href="<?php echo RACINE ?>vues/css/carrousel.css" type="text/css" media="screen" /> <script type="text/javascript" src="<?php echo RACINE ?>vues/js/carrousel.js"></script> </head> <?php // accès direct interdit defined('RACINE') or die('accès direct interdit'); // connexion à la base de données et sélection de la base require(RACINE."modeles/modele.php"); // selection des enregistrements $sql = "SELECT * FROM carrousel ORDER BY id DESC"; $resultat = mysql_query ($sql); // Récupération des données $tableau = array(); while ($carrousel = mysql_fetch_assoc ($resultat)) { $tableau[] = $carrousel; } // fermeture de la connexion mysql_close($liendb); ?> <?php // écriture des lignes du tableau $i=0; foreach ($tableau as $carrousel) { if($i<6){ $photo = $carrousel['photo']; $titre = $carrousel['titre']; $texte = $carrousel['texte']; ?> <div id="slide1" class="slide"> <div class="visu"> <img src="<?php echo RACINE.$photo; ?>" alt="<?php echo $titre; ?>"/> </div> <div class="title"> <a href="*"><?php echo $titre; ?></a> </div> <div class="texte"> <?php echo $texte; ?> </div> </div> <div id="slide2" class="slide"> <div class="visu"> <img src="<?php echo RACINE.$photo; ?>" alt="<?php echo $titre; ?>"/> </div> <div class="title"> <a href="*"><?php echo $titre; ?></a> </div> <div class="texte"> <?php echo $texte; ?> </div> </div> <div id="slide3" class="slide"> <div class="visu"> <img src="<?php echo RACINE.$photo; ?>" alt="<?php echo $titre; ?>"/> </div> <div class="title"> <a href="*"><?php echo $titre; ?></a> </div> <div class="texte"> <?php echo $texte; ?> </div> </div> <?php $i++; } } ?>
- Javascript du carrousel
var carrousel={ nbSlide:0, nbCurrent:1, elemCurrent:null, elem:null, timer:null, init:function(elem){ this.nbSlide=elem.find(".slide").length; /* Création de la pagination */ elem.append('<div class="navigation"></div>'); for(var i=1;i<=this.nbSlide;i++){ elem.find(".navigation").append("<span>"+i+"</span>"); } elem.find(".navigation span").click(function(){carrousel.gotoSlide($(this).text());}) /* Initialisation du carrousel */ this.elem=elem; elem.find(".slide").hide(); elem.find(".slide:first").show(); this.elemCurrent=elem.find(".slide:first"); this.elem.find(".navigation").css("opacity",0.6); this.elem.find(".navigation span:first").addClass("active"); /* Création du timer */ carrousel.play(); /* Stop quand on passe dessus */ elem.mouseover(carrousel.stop); elem.mouseout(carrousel.play); }, gotoSlide:function(num){ if(num==this.nbCurrent){return false;} /* Animation en fadeIn/fadeOut this.elemCurrent.fadeOut(); this.elem.find("#slide"+num).fadeIn(); */ /* Animation en slide var sens = 1; if(num<this.nbCurrent){sens = -1;} var cssDeb = {"left" : sens* this.elem.width()}; var cssFin = {"left" : -sens* this.elem.width()}; this.elem.find("#slide"+num).show().css(cssDeb) this.elem.find("#slide"+num).animate({"top":0,"left":0},500); this.elemCurrent.animate(cssFin,500); */ this.elemCurrent.find(".visu").fadeOut(); this.elem.find("#slide"+num).show(); this.elem.find("#slide"+num+" .visu").hide().fadeIn(); var titleHeight=this.elemCurrent.find(".title").height(); this.elemCurrent.find(".title").animate({"bottom":-titleHeight},500); this.elem.find("#slide"+num+" .title").css("bottom",-titleHeight).animate({"bottom":0},500); this.elem.find(".navigation span").removeClass("active"); this.elem.find(".navigation span:eq("+(num-1)+")").addClass("active"); this.nbCurrent=num; this.elemCurrent=this.elem.find("#slide"+num); }, next:function(){ var num=this.nbCurrent+1; if(num>this.nbSlide){ num=1; } this.gotoSlide(num); }, prev:function(){ var num=this.nbCurrent-1; if(num<1){ num=this.nbSlide; } this.gotoSlide(num); }, stop:function(){ window.clearInterval(carrousel.timer); }, play:function(){window.clearInterval(carrousel.timer); carrousel.timer=window.setInterval("carrousel.next()",5000); } } $(function(){ carrousel.init($("#carrousel")); });
Du coté administration tous ce passe bien donc je ne croit pas que ça vient de là.
Je demande votre aide. Merci d'avance.
Autres pages sur : aide probleme carrousel
Lassé par la pub ? Créez un compte
De base le carrousel marche bien.
Voici le code "Vue du carrousel" au départ (après le tuto) :
Le Javascript pour le carrousel :
Et le CSS :
Donc tous ça fonctionne, mais moi je voudrais ajouter,modifier ou supprimer des articles de ce carrousel grâce à un espace d'administration déjà créé.
Voici le nouveau code "vue du carrousel"
Et donc tous ça me donne un bug dans le carrousel.
J'aimerais vraiment résoudre ce problème.
Avez vous une idée ?
Je pense peut-être à cette ligne du nouveau vue du carrousel :
Voici le code "Vue du carrousel" au départ (après le tuto) :
<div id="carrousel"> <div id="slide1" class="slide"> <div class="visu"> <img src="<?php echo RACINE ?>images/img1.jpg"/> </div> <div class="title"> Titre 1 </div> </div> <div id="slide2" class="slide"> <div class="visu"> <img src="<?php echo RACINE ?>images/img2.jpg"/> </div> <div class="title"> Titre 2 </div> </div> <div id="slide3" class="slide"> <div class="visu"> <img src="<?php echo RACINE ?>images/img3.jpg"/> </div> <div class="title"> Titre 3 </div> </div> </div>
Le Javascript pour le carrousel :
var carrousel={ nbSlide:0, nbCurrent:1, elemCurrent:null, elem:null, timer:null, init:function(elem){ this.nbSlide=elem.find(".slide").length; /* Création de la pagination */ elem.append('<div class="navigation"></div>'); for(var i=1;i<=this.nbSlide;i++){ elem.find(".navigation").append("<span>"+i+"</span>"); } elem.find(".navigation span").click(function(){carrousel.gotoSlide($(this).text());}) /* Initialisation du carrousel */ this.elem=elem; elem.find(".slide").hide(); elem.find(".slide:first").show(); this.elemCurrent=elem.find(".slide:first"); this.elem.find(".navigation").css("opacity",0.6); this.elem.find(".navigation span:first").addClass("active"); /* Création du timer */ carrousel.play(); /* Stop quand on passe dessus */ elem.mouseover(carrousel.stop); elem.mouseout(carrousel.play); }, gotoSlide:function(num){ if(num==this.nbCurrent){return false;} /* Animation en fadeIn/fadeOut this.elemCurrent.fadeOut(); this.elem.find("#slide"+num).fadeIn(); */ /* Animation en slide var sens = 1; if(num<this.nbCurrent){sens = -1;} var cssDeb = {"left" : sens* this.elem.width()}; var cssFin = {"left" : -sens* this.elem.width()}; this.elem.find("#slide"+num).show().css(cssDeb) this.elem.find("#slide"+num).animate({"top":0,"left":0},500); this.elemCurrent.animate(cssFin,500); */ this.elemCurrent.find(".visu").fadeOut(); this.elem.find("#slide"+num).show(); this.elem.find("#slide"+num+" .visu").hide().fadeIn(); var titleHeight=this.elemCurrent.find(".title").height(); this.elemCurrent.find(".title").animate({"bottom":-titleHeight},500); this.elem.find("#slide"+num+" .title").css("bottom",-titleHeight).animate({"bottom":0},500); this.elem.find(".navigation span").removeClass("active"); this.elem.find(".navigation span:eq("+(num-1)+")").addClass("active"); this.nbCurrent=num; this.elemCurrent=this.elem.find("#slide"+num); }, next:function(){ var num=this.nbCurrent+1; if(num>this.nbSlide){ num=1; } this.gotoSlide(num); }, prev:function(){ var num=this.nbCurrent-1; if(num<1){ num=this.nbSlide; } this.gotoSlide(num); }, stop:function(){ window.clearInterval(carrousel.timer); }, play:function(){window.clearInterval(carrousel.timer); carrousel.timer=window.setInterval("carrousel.next()",5000); } } $(function(){ carrousel.init($("#carrousel")); });
Et le CSS :
#carrousel { float: left; border: solid 5px #e7dbc5; width: 430px; height: 200px; position: relative; overflow: hidden; } .slide { position: absolute; top:0; left:0; width: 430px; height: 200px; } .title { position: absolute; bottom:0; left:0; width: 418px; height: 65px; line-height: 65px; padding: 0 0 0 12px; background: url(../../images/images_slide/transparence_gris.png); } .texte { position: absolute; bottom:0; right:0; width: 418px; height: 25px; padding: 0 0 0 12px; } .navigation { position: absolute; bottom:38px; right:5px; } .navigation span { background:#000; color:#fff; padding: 2px 4px 0 4px; } .navigation span:hover,.navigation span.active { background:#fff; color:#000; padding: 2px 4px 0 4px; cursor: pointer; }
Donc tous ça fonctionne, mais moi je voudrais ajouter,modifier ou supprimer des articles de ce carrousel grâce à un espace d'administration déjà créé.
Voici le nouveau code "vue du carrousel"
<?php // accès direct interdit defined('RACINE') or die('accès direct interdit'); // connexion à la base de données et sélection de la base require(RACINE."modeles/modele.php" ); // selection des enregistrements $sql = "SELECT * FROM carrousel ORDER BY id DESC"; $resultat = mysql_query ($sql); // Récupération des données $tableau = array(); while ($carrousel = mysql_fetch_assoc ($resultat)) { $tableau[] = $carrousel; } // fermeture de la connexion mysql_close($liendb); ?> <?php // écriture des lignes du tableau $i=0; foreach ($tableau as $carrousel) { if($i<6){ $photo = $carrousel['photo']; $titre = $carrousel['titre']; $texte = $carrousel['texte']; ?> <div id="slide1" class="slide"> <div class="visu"> <img src="<?php echo RACINE.$photo; ?>" alt="<?php echo $titre; ?>"/> </div> <div class="title"> <a href="#"><?php echo $titre; ?></a> </div> <div class="texte"> <?php echo $texte; ?> </div> </div> <div id="slide2" class="slide"> <div class="visu"> <img src="<?php echo RACINE.$photo; ?>" alt="<?php echo $titre; ?>"/> </div> <div class="title"> <a href="*"><?php echo $titre; ?></a> </div> <div class="texte"> <?php echo $texte; ?> </div> </div> <div id="slide3" class="slide"> <div class="visu"> <img src="<?php echo RACINE.$photo; ?>" alt="<?php echo $titre; ?>"/> </div> <div class="title"> <a href="*"><?php echo $titre; ?></a> </div> <div class="texte"> <?php echo $texte; ?> </div> </div> <?php $i++; } } ?>
Et donc tous ça me donne un bug dans le carrousel.
J'aimerais vraiment résoudre ce problème.
Avez vous une idée ?
Je pense peut-être à cette ligne du nouveau vue du carrousel :
<?php // écriture des lignes du tableau $i=0; foreach ($tableau as $carrousel) { if($i<6){ $photo = $carrousel['photo']; $titre = $carrousel['titre']; $texte = $carrousel['texte']; ?>
Lassé par la pub ? Créez un compte