AccueilFAQRechercherMembresGroupesS'enregistrerConnexion

Forum de graphisme, codage et game design proposant des tutoriels, astuces, libres services et commandes dans les domaines de l'infographie amateur, de l'intégration web (HTML et CSS essentiellement) ainsi que dans la conception de RPG sur forum.


    Page d'Accueil Slideshow/Défilante de Solid6Snake

    Partagez
    avatar
    Alzufen
    MasculinAge : 23Messages : 2103

    le Dim 1 Nov 2015 - 14:05

    Rappel du premier message :

    Salut à tous !

    Suite à la demande de Solid6Snake trouvable ici : http://www.never-utopia.com/t57456p15-pa-demande-code-page-d-accueil, je viens ici pour partager le LS qui en découle, ce dernier étant une Page d'Accueil (Abrégé en PA pour le reste du LS).

    ----------¤ Les liens utiles ¤----------

    ¤ Vous pouvez voir le LS ici : http://puu.sh/l5pXS/c80436aff3.png (le fond gris est le fond de mon forum de test)
    ¤ Vous pouvez tester le code ici : http://jsfiddle.net/Alzufen/c460senw/3/show/

    ----------¤ Les pré-requis ¤----------

    ¤ Être minimum Admin du forum : Il vous faudra accéder au panneau d'administration pour utiliser ce LS.
    ¤ [Optionnel] Être Codeur: Si vous souhaitez modifier le code, notamment le JS (car le CSS/HTML est plus à la portée de tout le monde) je vous recommande fortement de vous y connaître, sinon, n'y touchez pas tout ce fais automatiquement.
    ¤ [Optionnel] Être Graphiste : Si vous voulez faire des modifications et notamment faire un joli titre, je vous recommande de le faire en Graph' !
    ¤ Avoir activé le JS sur son forum et le JS activé sur le navigateur : Si le JavaScript est désactivé sur votre forum, ou sur votre navigateur, le code ne fonctionnera pas bien. Il n'y aura aucun ajout automatique, et aucun moyen de défiler alors veillez à faire attention à ça.
    ¤ Crédits : Vous êtes priés de ne pas retirer le crédit à NU, il est placé de manière discrète. Si jamais il vous dérange malgré tout, veuillez à créditer NU sur votre page d'accueil !

    ----------¤ Les fonctionnalités spéciales ¤----------

    ¤ Fonction SlideShow : SlideShow, Carroussel, PA Défilante, appelez ça comme vous voulez le principe est pour moi le même. Ca vous permet de mettre plusieurs blocs sur une même ligne et d'en afficher que certains en même temps tout en pouvant défiler pour voir les suivants. Ils défilent grâce aux boutons rond en dessous, qui permet d'aller directement au bloc qui correspond, ou grâce au flèches pour celui d'en bas qui permet un défilement les uns après les autres.
    ¤ Fonction Retour au début : Le SlideShow retourne au début si on défile avec la flèche de droite et qu'on est à la fin de tous les blocs, ou va à la fin si on défile avec la flèche gauche.
    ¤ Fonction Automatique : Les ronds qui permettent d'accéder au bloc correspondant s'ajoute automatiquement en fonction du nombre de bloc que vous avez.
    ¤ 5 Blocs en une fois : Le bloc d'en bas permet d'afficher 5 blocs à la fois de petites tailles ! Bien évidemment, veillez à en mettre toujours 5 sinon vous aurez un blanc à côté des derniers avant le retour au début.
    ¤ Blocs ou Vidéo ? : A l'origine le code est prévu pour accueillir des vidéos, je n'ai pas encore testé en mettant du texte, ça devrait fonctionner cependant il n'y a pas d'ascenseur le risque est donc que le texte dépasse. Par contre, vous pouvez tout à fait y afficher des images.

    ----------¤ A Venir ¤----------

    Je prévois deux ajouts futurs et donc deux mises à jours à ce LS. A l'origine, le code demandait un défilement automatique, mais puisque j'ai un peu du mal à le réaliser avec mon code actuel et que je veux pas trop faire attendre le commanditaire, cette fonction viendra plus tard. De plus, je compte essayer de faire en sorte que les vidéos d'en bas soient une boucle. En gros, que vous mettiez un multiple de 5 en nombre de blocs (genre 15) ou moins (genre 13), on n'aura pas de bloc blanc à droite des derniers blocs mais le début de la PA.

    Deux petites fonctions sympa, peut-être inutile pour certains mais donc indispensable !

    Passons maintenant au code !

    Le code HTML, à mettre dans :
    Panneau d'administration > Affichage > Page d'Accueil > Généralité > Message sur la Page d'Accueil
    Code:
    <div class="pa_total">
      
     <div class="slide_bloc" id="shidden">
                  
     <div class="slide">
                      
     <div class="contenu">
        
     </div>
                      
     <div class="contenu">
        
     </div>
                  
     </div>
              
     </div>
              
     <div class="selecteur">
        
     </div>
            <a style="position: absolute; right: 45px; font-size: 8px; margin-top: -14px; color: rgba(0,0,0,0.5); text-decoration: none!important;" href="http://www.never-utopia.com/">(c) Never-Utopia</a>
     <div class="slide_bloc" id="shidden2">
                  
     <div class="slide_content">
                      
     <div class="slide">
                          
     <div class="contenu">
        
     </div>
                          
     <div class="contenu">
        
     </div>
                          
     <div class="contenu">
        
     </div>
                          
     <div class="contenu">
        
     </div>
                          
     <div class="contenu">
        
     </div>
                          
     <div class="contenu">
        
     </div>
                          
     <div class="contenu">
        
     </div>
                          
     <div class="contenu">
        
     </div>
                          
     <div class="contenu">
        
     </div>
                          
     <div class="contenu">
        
     </div>
                          
     <div class="contenu">
        
     </div>
                          
     <div class="contenu">
        
     </div>
                          
     <div class="contenu">
        
     </div>
                          
     <div class="contenu">
        
     </div>
                          
     <div class="contenu">
        
     </div>
                      
     </div>
                  
     </div>
              
     </div>
              
     <div class="selecteur">
        
     </div>
              
     <div class="fleches">
               <img src="http://image.noelshack.com/fichiers/2015/39/1443379244-150921023830175200.png" class="fleche gauche cliquable" />        <img src="http://image.noelshack.com/fichiers/2015/39/1443379244-150921023829827991.png" class="fleche droite cliquable" />      
     </div>
    </div>

    Pour ajouter des blocs, il vous suffit de copier coller ceci à la suite des autres :

    Code:
    <div class="contenu">
        
    </div>

    Si vous souhaitez mettre des images, vous pouvez soit remplacer la div par votre balise img (tout en veillant à rajouter la class) soit la mettre directement dans la div, mais veillez à retirer le "background" de la class "contenu" dans le CSS si jamais votre image n'est pas rectangulaire ou ne fais pas la taille totale de la div.

    Pour mettre des vidéos, vous pouvez faire pareil que les images.

    Le code CSS à mettre dans :
    Panneau d'administration > Affichage > Images et Couleurs > Couleurs > Feuille de Style CSS

    Code:
    .pa_total {
        position: relative;
        width: 850px;
        height: 490px;
        margin: auto;
    }
    .slide_bloc {
        position: relative;
        width: 766px;
        border: 1px solid #000;
        overflow: hidden;
        margin: auto;
        z-index: 3;
    }
    #shidden {
        height: 350px;
    }
    #shidden2 {
        height: 100px;
    }
    .slide {
        display: inline-block;
        position: relative;
        left: 0;
        height: 0;
        transition: 1s all;
    }
    .contenu {
        display: inline-block;
        background: red;
    }
    .contenu:first-child {
        background: yellow;
    }
    #shidden .contenu {
        width: 766px;
        height: 350px;
    }
    #shidden2 .contenu {
        width: 150px;
        height: 100px;
    }
    .selecteur {
        text-align: center;
        margin-bottom: 5px;
    }
    .selecteur img {
        opacity: 0.4;
        height: 10px;
        padding: 3px 1px 0;
        cursor: pointer;
    }
    .selecteur img:hover {
        opacity: 0.6;
    }
    .selecteur img.selected {
        opacity: 1;
        cursor: default;
    }
    .fleches {
        position: absolute;
        height: 100px;
        width: 850px;
        bottom: 19px;
        z-index: 2;
    }
    .fleche {
        position: absolute;
        top: 50%;
        margin-top: -16px;
        opacity: 0.6;
        cursor: pointer;
    }
    .fleche:hover {
        opacity: 1;
    }
    .gauche {
        left: 6px;
    }
    .droite {
        right: 6px;
    }

    Certaines parties du code ne vous sont pas forcément utile. Je parle notamment des backgrounds ici :

    Code:
    .contenu {
        display: inline-block;
        background: red;
    }
    .contenu:first-child {
        background: yellow;
    }

    Le premier sert à mettre une couleur de fond (rouge) à chaque contenu, mais si vous mettez des vidéos ou des images, cela vous servira à rien.

    Le second sert à afficher une couleur de fond (jaune) au premier bloc contenu, pour distinguer le début et la fin, évidemment comme au dessus, cela vous sers à rien si vous mettez des images ou des vidéos.

    Une mise à jour viendra avec des ajouts pour optimiser le code pour du texte ainsi que des commentaires dans le code CSS (et éventuellement JS) pour vous aider à savoir quoi modifier, quoi ajouter, etc. à votre guise.

    Passons à la fin, le code JS, à mettre dans :
    Panneau d'administration > Modules > HTML & JavaScript > Gestion des codes JavaScript > Veillez à bien avoir coché "Oui" à "Activer la gestion des codes Javascript :" et à enregistrer > Créer un nouveau code JavaScript > Mettez le titre que vous voulez (Par ex : Page d'Accueil) > Laissez coché "sur l'index" et seulement "sur l'index" puis copiez/collez :

    Code:
    $(window).load(function () {
        $('.slide').each(function () {
            var $this = $(this),
                $contenu = $this.children(),
                $parent = $this.parents('.slide_bloc'),
                $selection = $parent.next(),
                nbr = $contenu.length,
                nbr2 = Math.ceil(nbr / 5),
                width = ($contenu.width() + 4) * nbr,
                slide_id = $parent.attr('id');

            if (slide_id == 'shidden') {
                for (var v = 1; v <= nbr; v++) {
                    $selection.append('<img src="http://image.noelshack.com/fichiers/2015/39/1443376395-150921023657255860.png" class="selection" />');
                }
            } else {
                for (var v = 1; v <= nbr2; v++) {
                    $selection.append('<img src="http://image.noelshack.com/fichiers/2015/39/1443376395-150921023657255860.png" class="selection" />');
                }
            }
            $selection.children().first().addClass('selected');
            $this.css('width', width + 'px');
        });

        $('.selection').click(function () {
            var $this = $(this),
                position = $this.index(),
                s_hidden = $this.parent().prev(),
                sh_id = s_hidden.attr('id'),
                $selection = $this.parent().children(),
                $slide = s_hidden.find('.slide'),
                width = $slide.children().width();

            if ($this.not('.selected')) {

                if (sh_id == 'shidden') {
                    var left = (width + 4) * position;
                    $slide.css('left', '-' + left + 'px');
                } else {
                    var left = (width + 4) * 5 * position;
                    $slide.css('left', '-' + left + 'px');
                }
                $selection.removeClass('selected');
                $this.addClass('selected');
            }
        });
        $('.fleche').click(function () {
            var $this = $(this),
                $selecteur = $this.parent().prev(),
                $selection = $selecteur.children(),
                $next = $selecteur.children('.selected').next(),
                $prev = $selecteur.children('.selected').prev(),
                $c_slide = $('.slide_content'),
                $fleche = $('.fleche'),
                s_hidden = $this.parent().prev().prev(),
                $slide = s_hidden.find('.slide').first(),
                $contenu = $slide.children();

            function clic() {
                $fleche.addClass('cliquable');
            }

            function remove() {
                $slide.remove();
            }

            if ($this.hasClass('cliquable')) {
                $fleche.removeClass('cliquable');
                $selection.removeClass('selected');
                if ($this.hasClass('gauche')) {
                    var index = $prev.index();
                    if (index == -1) {
                        var width = ($slide.width() + 10) * 5,
                            nbr = $slide.children().length,
                            left = 770 * (nbr / 5);
                        $c_slide.css('width', width + 'px');
                        $selection.last().addClass('selected');
                        $slide.animate({
                            left: '+=770px'
                        },
                        5,
                            'linear');
                        $c_slide.append($slide.clone());
                        var $slide2 = s_hidden.find('.slide').last();
                        $slide2.css('left', '-' + left + 'px');
                        $c_slide.css('width', $slide.width() + 'px');
                        $slide2.animate({
                            left: '+=770px'
                        },
                        5,
                            'linear');
                        setTimeout(remove, 1000);
                    } else {
                        $prev.addClass('selected');
                        $slide.animate({
                            left: '+=770px'
                        },
                        5,
                            'linear');
                    }
                } else {
                    var index = $next.index();
                    if (index == -1) {
                        var width = ($slide.width() + 10) * 2;
                        $c_slide.css('width', width + 'px');
                        $selection.first().addClass('selected');
                        $slide.animate({
                            left: '-=770px'
                        },
                        5,
                            'linear');
                        $c_slide.append($slide.clone());
                        var $slide2 = s_hidden.find('.slide').last();
                        $slide2.css('left', '770px');
                        $c_slide.css('width', $slide.width() + 'px');
                        $slide2.animate({
                            left: '-=770px'
                        },
                        5,
                            'linear');
                        setTimeout(remove, 1000);
                    } else {
                        $next.addClass('selected');
                        $slide.animate({
                            left: '-=770px'
                        },
                        5,
                            'linear');
                    }
                }
                setTimeout(clic, 1000);
            }
        });
    });

    Il vous suffira ensuite d'enregistrer le code et d'aller voir le résultat sur votre forum.

    Sachez qu'en cas de problème, une section est mise à votre disposition pour toutes aides ici : http://www.never-utopia.com/f177-probleme-avec-mon-code n'hésitez donc pas à y poster si vous avez un quelconque soucis avec le code.

    Vos commentaires et remerciements sont toujours bienvenus ^^



    avatar
    Kiki85
    MasculinAge : 24Messages : 389

    le Sam 11 Fév 2017 - 18:32

    Merci Very Happy
    avatar
    Depp
    FémininAge : 27Messages : 298

    le Jeu 30 Mar 2017 - 18:18

    merci beaucoup <3



    avatar
    Erreur404
    FémininAge : 20Messages : 2

    le Jeu 30 Mar 2017 - 22:08

    Merci
    Pinke
    FémininAge : 25Messages : 139

    le Ven 31 Mar 2017 - 16:52

    Un grand merci !
    avatar
    mijako
    FémininAge : 26Messages : 83

    le Jeu 6 Avr 2017 - 2:11

    merci
    avatar
    Caly.s
    FémininAge : 19Messages : 13

    le Sam 8 Avr 2017 - 18:44

    Merchi
    avatar
    alsayed
    MasculinAge : 45Messages : 75

    le Sam 6 Mai 2017 - 15:58

    Merci
    avatar
    nuanciel
    FémininAge : 27Messages : 139

    le Mer 21 Juin 2017 - 9:42

    Merci beaucoup !
    avatar
    Euterpe
    FémininAge : 32Messages : 319

    le Ven 23 Juin 2017 - 17:02

    merci
    avatar
    Malizia.
    FémininAge : 22Messages : 90

    le Mer 2 Aoû 2017 - 16:09

    Merci :)
    avatar
    Lilynufare
    FémininAge : 28Messages : 341

    le Sam 18 Nov 2017 - 0:11

    merci du partage :)
    avatar
    Bunikkk
    MasculinAge : 23Messages : 41

    le Mar 9 Jan 2018 - 3:55

    Merci
    avatar
    marie-noelle
    FémininAge : 61Messages : 109

    le Jeu 11 Jan 2018 - 0:10

    pour voir cheers
    avatar
    Shakespeare
    FémininAge : 28Messages : 109

    le Ven 12 Jan 2018 - 18:16

    Merci du partage !
    avatar
    kazan
    FémininAge : 101Messages : 13

    le Lun 15 Jan 2018 - 2:40


    merci beaucoup !
    avatar
    Porcelain Detox
    MasculinAge : 24Messages : 91

    le Mar 30 Jan 2018 - 22:43

    Merci :)
    Garunzo
    MasculinAge : 19Messages : 38

    le Mer 7 Fév 2018 - 10:20

    merci
    avatar
    SanctusMortem
    MasculinAge : 23Messages : 4

    le Dim 11 Mar 2018 - 1:35

    Merci
    avatar
    Le Dévoreur de temps
    MasculinAge : 39Messages : 69

    le Mer 14 Mar 2018 - 1:43

    merci beaucoup pour le partage! Wink
    avatar
    Sighild
    FémininAge : 31Messages : 208

    le Mer 1 Aoû 2018 - 19:52

    Merci beaucoup pour le partage!
    Contenu sponsorisé


      La date/heure actuelle est Dim 16 Déc 2018 - 9:11