IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mise en page CSS Discussion :

Comment faire un site à lecture horizontale ?


Sujet :

CSS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2014
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2014
    Messages : 445
    Par défaut Comment faire un site à lecture horizontale ?
    Bonjour à tous,
    Comment faire un site à lecture horizontale, à la manière d'un diaporama fullscreen (avec ses flèches à gauche et à droite) sauf qu'on ne passe pas d'une image à une autre, mais bien d'une page bien distincte à une autre page. J'ai trouvé un code sur un forum, mais qui ne fonctionne pas dans mon cas (mais la logique est bien là).
    Merci pour votre aide.
    dhillig
    le code en question :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>JCVD POWA !!!! XD XD XD</title>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
        <script type="text/javascript">
            
            $(function(){
                $('body,#content').css({'overflow':'hidden'});
                
                $('#nav a').slice(1,5).bind('click',function(e){
                    e.preventDefault();
                    $('#nav a').removeClass('current');
                    $(this).addClass('current');
                    var cible = $(this).attr('href');
                    $('html, body').stop().animate({
                         scrollLeft: $(cible).offset().left,
                         scrollTop: $(cible).offset().top
                    }, 500);
                });                
                $('#nav a:first').bind('click',function(e){
                    e.preventDefault();
                        $('#nav a').each(function(i){
                            if($(this).hasClass('current')) positionCurrent = i;                            
                        });
                        if(positionCurrent != 1){                            
                            $('#nav a').eq(positionCurrent - 1).trigger('click');                            
                        }
                    
                });
                $('#nav a:last').bind('click',function(e){
                    e.preventDefault();
                    $('#nav a').each(function(i){
                        if($(this).hasClass('current')) positionCurrent = i;                            
                    });
                    if(positionCurrent != 4){                            
                        $('#nav a').eq(positionCurrent + 1).trigger('click');                            
                    }
                });
                
            }); 
        </script>
        <style type="text/css">
            body,#content{width:3000px;}
            #nav{position:fixed;top:0;left:0;}
            #nav li{display:inline-block;}
            #nav a{display:block;width:15px;height:15px;margin:0 10px;padding:5px;text-decoration:none;background-color:black;color:white;border:1px solid black;}
            #nav a:hover{background-color:white;color:black;}
            
            #content{margin:40px 0 0 0;}
            .article{width:480px;float:left;margin:0 10px;}
            
            
        </style>
    </head>
    <body>
        <ul id="nav">
            <li><a href="#"><</a></li>
            <li><a href="#uneAncre" class="current">1</a></li>
            <li><a href="#uneAutreAncre">2</a></li>
            <li><a href="#encoreUneAncre">3</a></li>
            <li><a href="#etEncoreUneAncre">4</a></li>
            <li><a href="#">></a></li>
        </ul>
        <div id="content">
            <div id="uneAncre" class="article">
                    <p>You see, premi&egrave;rement, il y a de bonnes r&egrave;gles, de bonnes rules et c'est une sensation r&eacute;elle qui se produit si on veut ! Et l&agrave;, vraiment, j'essaie de tout coeur de donner la plus belle r&eacute;ponse de la terre ! </p>
                    <p>Quand tu fais le calcul, si vraiment tu veux te rappeler des souvenirs de ton perroquet, en v&eacute;rit&eacute;, la v&eacute;rit&eacute;, il n'y a pas de v&eacute;rit&eacute; parce que spirituellement, on est tous ensemble, ok ? Et j'ai toujours grandi parmi les chiens. </p>
                    <p>Je ne voudrais pas rentrer dans des choses trop dimensionnelles, mais, tu vois au passage qu'il n'y a rien de concret car le cycle du cosmos dans la vie... c'est une grande roue et finalement tout refaire depuis le d&eacute;but. Mais &ccedil;a, c'est uniquement li&eacute; au spirit. </p>
            </div>
            <div id="uneAutreAncre" class="article">
                    <p>Tu comprends, je sais que, gr&acirc;ce &agrave; ma propre v&eacute;rit&eacute; entre penser et dire, il y a un monde de diff&eacute;rence car l'aboutissement de l'instinct, c'est l'amour ! Mais &ccedil;a, c'est uniquement li&eacute; au spirit. </p>
                    <p>&Ccedil;a sounds good, si vraiment tu veux te rappeler des souvenirs de ton perroquet, on vit dans une r&eacute;alit&eacute; qu'on a cr&eacute;&eacute;e et que j'appelle illusion et je ne cherche pas ici &agrave; mettre un point ! C'est pour &ccedil;a que j'ai fait des films avec des replicants. </p>
                    <p>Si je t'emmerde, tu me le dis, je ne suis pas un simple danseur car c'est juste une question d'awareness et je ne cherche pas ici &agrave; mettre un point ! Mais &ccedil;a, c'est uniquement li&eacute; au spirit. </p>
            </div>
            <div id="encoreUneAncre" class="article">
                    <p>&Ccedil;a sounds good, si vraiment tu veux te rappeler des souvenirs de ton perroquet, on vit dans une r&eacute;alit&eacute; qu'on a cr&eacute;&eacute;e et que j'appelle illusion et je ne cherche pas ici &agrave; mettre un point ! C'est pour &ccedil;a que j'ai fait des films avec des replicants. </p>
                    <p>Si je t'emmerde, tu me le dis, je ne suis pas un simple danseur car c'est juste une question d'awareness et je ne cherche pas ici &agrave; mettre un point ! Mais &ccedil;a, c'est uniquement li&eacute; au spirit. </p>
                    <p>Tu vois, apr&egrave;s il faut s'int&eacute;grer tout &ccedil;a dans les environnements et il faut se recr&eacute;er... pour recr&eacute;er... a better you et c'est tr&egrave;s, tr&egrave;s beau d'avoir son propre moi-m&ecirc;me ! Mais &ccedil;a, c'est uniquement li&eacute; au spirit. </p>
                    <p>Tu comprends, l&agrave; on voit qu'on a beaucoup &agrave; travailler sur nous-m&ecirc;mes car entre penser et dire, il y a un monde de diff&eacute;rence et parfois c'est bon parfois c'est pas bon. C'est pour &ccedil;a que j'ai fait des films avec des replicants. </p>
            </div>
            <div id="etEncoreUneAncre" class="article">
                    <p>Tu vois, apr&egrave;s il faut s'int&eacute;grer tout &ccedil;a dans les environnements et il faut se recr&eacute;er... pour recr&eacute;er... a better you et c'est tr&egrave;s, tr&egrave;s beau d'avoir son propre moi-m&ecirc;me ! Mais &ccedil;a, c'est uniquement li&eacute; au spirit. </p>
                    <p>Tu comprends, l&agrave; on voit qu'on a beaucoup &agrave; travailler sur nous-m&ecirc;mes car entre penser et dire, il y a un monde de diff&eacute;rence et parfois c'est bon parfois c'est pas bon. C'est pour &ccedil;a que j'ai fait des films avec des replicants. </p>
                    <p>You see, premi&egrave;rement, entre penser et dire, il y a un monde de diff&eacute;rence et je ne cherche pas ici &agrave; mettre un point ! Il y a un an, je t'aurais parl&eacute; de mes muscles. </p>
            </div>
        </div>
    </body>
    </html>

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonjour,
    J'ai trouvé un code sur un forum, mais qui ne fonctionne pas dans mon cas...
    et tu penses que l'on va deviner ce qui ne fonctionne pas ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2014
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2014
    Messages : 445
    Par défaut
    Bonsoir NoSmoking pardon !!! :/
    Bon, en appliquant une largeur de 100% aux <div> "uneAncre", "uneAutreAncre" etc... , les div se superposent (normal :/ ). Pour le coup, la lecture redevient verticale.
    Je ne suis pas certain qu'une lecture à l'horizontale puisse se faire avec les ancres (cela aurait été trop facile .
    Bonne soirée.
    dhillig

  4. #4
    Membre Expert
    Avatar de ryan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2003
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 956
    Billets dans le blog
    1
    Par défaut
    Yop!

    Si, on peut faire une lecture horizontale avec des ancres, soit internes (on scrolle horizontalement dans la même page), soit externes (on appelle une autre page). Dans ce dernier cas, certains navigateurs risquent de poser un problème de FOUC (ou FUC ): Flash of Unstyled Content , mais il semble bien qu'il existe une solution à ce problème.

    Dans les deux cas, animate de Jquery, sur marginLeft, par exemple, pour faire disparaître le contenu d'une page vers, disons, la gauche, et faire apparaître le contenu de la page suivante depuis la droite.

    Sachant que dans le cas d'une ancre externe (un hyperlien, quoi), il y aura toujours un court instant où il n'y aura rien sur l'écran, je partirais plus vers des ancres internes (ce qui te dispense de t'inquiéter du FOUC)

  5. #5
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Août 2014
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2014
    Messages : 445
    Par défaut
    Slt Ryan,
    Dans les deux cas, la fonction "animate" de jquery... bah (excepté ce que tu m'as appris précédemment sur comment "ralentir une ancre").
    Ça m'intéresse toujours (et bcp) de savoir comment scroller horizontalement la même page (avec un magnétisme à 100% de la largeur). Même si dans mon cas, je pense à des pages séparée car relativement lourdes.
    Dans le deuxième cas (pages bien distinctes), en cliquant sur la flèche droite (qui n'est rien d'autre qu'un hyperlien), on peut arriver à faire partir la première page sur la gauche et faire arriver la nouvelle sur la droite !!!
    Je reste conscient du FOUC, mais cela me semble génial. Maintenant, comment les réaliser ?
    Bonne soirée !
    dhillig

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Le scroll Horizontal/vertical n'est pas le plus difficile à réaliser dans ce cas, c'est quelques lignes de code surtout en jQuery.

    Le gros problème de ton exemple est qu'il n'utilise pas la bonne structure HTML.

    Il te faut une fenêtre, un contenant qui va glisser et bien sûr les éléments qui seront visibles, cela donne en gros
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <div id="fenetre">
        <div id="slider">
            <div id="div_1" class="article"></div>
            <div id="div_2" class="article"></div>
            <div id="div_3" class="article"></div>
        </div>
    </div>
    - la 'fenetre' et les éléments class="article" auront la même largeur, il va de soit que la fenêtre aura également un overflow:hidden.
    - le 'slider' aura lui comme largeur la somme des largeurs des éléments qu'il contient, il devra de plus être positionné pour pouvoir glisser.
    - les .article devront être en float:left pour ce mettre bout à bout.

    Voilà pour le principe mais il est certains que l'on peut faire bien plus compliqué

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.Net ][1.1] Comment faire un site multilingue ?
    Par didoboy dans le forum ASP.NET
    Réponses: 8
    Dernier message: 25/10/2006, 10h46
  2. comment faire ce site:www.dpv-psa.de/ ?
    Par ocv807 dans le forum Webdesign & Ergonomie
    Réponses: 3
    Dernier message: 31/07/2006, 17h21
  3. comment faire un site internet entierement en flash
    Par vantoff dans le forum Flash
    Réponses: 4
    Dernier message: 27/07/2006, 07h28
  4. Réponses: 9
    Dernier message: 01/06/2006, 22h23
  5. Réponses: 19
    Dernier message: 28/01/2005, 09h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo