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

JavaScript Discussion :

[Scroll] Div fixe en detectant le scroll


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut [Scroll] Div fixe en detectant le scroll
    Bonjour,

    J'ai un menu lateral positionné en absolu. Il peut faire un slide-in et un slide-out au clic.
    Mon problème, j'aimerais qu'il soit toujours visible et qu'il descende quand la page descend ou si vous préférez, qu'il soit toujours à 300pixel du haut du navigateur et non du document.

    Il y a surement plusieurs moyens différents de faire cela, mais c'est la detection du moment où l'on scroll qui manque.
    dans le pire des cas, je ferais une boucle "infinie" qui check le haut du document visible toutes les N secondes.

    Merci de toute aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    a priori tous les scroll que j'ai pu voir qui detectent le scroll de la page donnent des trucs saccadés ...

    Le mieux est de se passer de javascript pour faire ça et positionner deux div comme il faut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <html>
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Nouvelle page 1</title>
    </head>
     
    <body style='overflow:hidden;margin:0px;'>
    <div style="height:100%;width:100%;overflow:auto"> <script type='text/javascript'> for(i=0;i<100;i++){document.write('ligne '+i+ '<br />')}</script></div>
    <div style="position:absolute;z-index:2;height:100px;width:100px;border:solid 1px red;top:300px;left:300px"> je ne bouge pas</div>
    </body>
     
    </html>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    Peut-être n'ai-je pas tout bien suivi mais en tout cas, ca ne marche pas.

    actuellement, j'ai donc mon menu lateral (un div)
    avec la CSS suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #menu_hidden{
     width:400px;
     position: absolute;
     left: -360px; 
     top: 300px;
     font: bold 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
    }
    (il est décalé a gauche car c'est un menu glissant

    Je lui ai donc rajouté un div container avec ton style inline mais ca ne change rien
    Résultat ici:


    Donc j'ai pensé que ton overflow:hidden était important. le probleme, c'est que comme c'est le KIT, on peut pas toucher directement à l'attribut body. pas grave, je rajoute une regle CSS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    body{
                    overflow:hidden;
                   }
    bah c'est pire ^^. ca marche plus, et j'ai plus de scroll bar.


    any idea?

    ps: pour le scroll j'ai vu une fois un script qui faisait ca tres bien, avec un effet de rebond mais il faisait 600lignes limite, moi le saccadé ou meme en décalé m'irait aussi. j'aimerai juste que ce menu soit le plus souvent possible accessible

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    non tu n'as pas du tout suivre en effet ...

    l'essentiel est d'avoir un div container qui va contenir l'enseble de la partie scrollable de la page tout doit être dans ce div ... sauf le menu en positon absolute ...

    le div container est en overflowauto et occupe tout l'ecran
    ce n'est donc pas le body qui scrolle mais le div ...

    as tu testé l'exemple donné ...

    mets le contenu de ta page dans le div à la place du script
    mets le menu dasn l'autre div
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Par défaut
    oups, mal regardé.

    bon ca risque ne pas être possible car je ne controle pas le debut ou la fin de l'élement body. Comme je dois charger un fichier template_pied.php que je ne controle pas (et qui contient entre autres, la balise de fermeture d'un TABLE) et idem pour le top, je n'ai pas de moyen de tout placer à l'exception du menu dans un container. (je veux automatiser ça via l'éditeur avec les includes facultatifs)

    J'imagine qu'il n'y a pas d'autres solutions?

  6. #6
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    et en utilisant la propriété
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    position: fixed;
    ?
    Avec IE (qui ne connait pas cette propriété), il faut faire autrement.

    Tu peux t'inspirer de ce script (au moins le CSS)

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

Discussions similaires

  1. Chrome menu déroulant dans div fixe + scroll
    Par allbundy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 26/10/2012, 11h00
  2. Comment placer des divs fixes au scroll ?
    Par Jayrome dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 01/02/2009, 11h39
  3. Scrolling Div et boutons
    Par mariedesmet dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 10/01/2008, 05h58
  4. Partie fixe et partie avec scrolling
    Par anban dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/12/2007, 14h13
  5. [composant:datagrid] datagrid ou scroll div please ??
    Par miloud dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/03/2006, 14h29

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