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 sur un élément ne fonctionne pas


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2011
    Messages : 136
    Points : 68
    Points
    68
    Par défaut Scroll sur un élément ne fonctionne pas
    Bonjour à tous,
    J'ai le problème suivant : je veux que le scroll sur un élément se fasse automatiquement sur un événement. Pour se faire, j'utilise la fonction javascript

    Un scroll se fait mais pas sur l'élément en question.

    Pour illustrer mon problème, vous pouvez jeter un oeil sur le site en développement http://www.o-naturel.ca/new/.
    Lorsque l'utilisateur entre un courriel mal formé (en bas de page sur la rubrique INFOLETTRE), la page est censée se scroller en bas de page par le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script>document.getElementById('msg_return_infolettre').scrollIntoView(false);</script>
    J'ai essayé plusieurs autres méthodes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <script>window.scrollTo(0, document.body.scrollHeight);</script>
    <script>window.location.hash('msg_return_infolettre');</script>	
    <script>window.scrollBy(0,2000);</script>
    <script>document.form_newsletter.saisie_courriel_infolettre.focus();</script>
    mais le résultat est le même : le scroll ne se fait pas entièrement.

    La page a été générée via php alors soyez indulgents sur l'indentation lorsque vous afficherez le code source.
    Merci d'avance pour celui ou celle qui pourra m'éclairer !

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    as tu essayé de mettre ton script juste avant la fin du body
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script>
      document.getElementById('msg_return_infolettre').scrollIntoView(false);</script>
    </body>

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2011
    Messages : 136
    Points : 68
    Points
    68
    Par défaut
    Oui, j'avais déjà essayé mais le résultat est identique.
    J'ai l'impression que le problème vient du 'rotator' en haut de la page. C'est une partie que j'ai récupéré du web... et comme toute partie récupérée, cela peut poser problème.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    C'est fort possible que le plugin mette le focus sur le slide.

    Essaies dans ce cas de mettre un setTimeout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    setTimeout(function(){
        document.getElementById('msg_return_infolettre').scrollIntoView(false);
      },1000);

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2011
    Messages : 136
    Points : 68
    Points
    68
    Par défaut
    Bravo NoSmoking !
    Impressionné ! Je n'aurais pas eu cette idée...
    Cela fonctionne très bien.
    Merci encore !

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    La solution reste un peu vaseuse.

    Il vaudrait mieux
    - mettre en commentaire la partie du script qui met le focus, peut être pas simple à trouver!
    - faire la vérification coté client pour éviter un aller/retour au serveur, en conservant la vérif. coté serveur bien entendu.

    M'enfin ça marche, ça marche, ça marche, ça marche, ça marche, ça marche!

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2011
    Messages : 136
    Points : 68
    Points
    68
    Par défaut
    Oui, ce n'est pas très propre comme solution mais comme tu l'as dit, pas facile à trouver dans ce bor..el de code !
    Je vais me pencher dessus 1 heure ou deux...
    Merci encore.

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

Discussions similaires

  1. [WD12] SQLExec sur BD Paradox ne fonctionne pas
    Par claude dans le forum WinDev
    Réponses: 19
    Dernier message: 13/03/2009, 09h21
  2. Réponses: 1
    Dernier message: 28/04/2008, 23h43
  3. Un lien sur un calque ne fonctionne pas sous Firefox
    Par beegees dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 11/10/2007, 22h01
  4. Hover sur une image ne fonctionne pas
    Par adrix26 dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 08/08/2007, 17h54
  5. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2003, 16h48

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