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 :

Tester si le scroll est actif


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut Tester si le scroll est actif
    Bonjour,
    Je suis en train de développer mon site perso et j'aimerais faire un test en JS pour savoir si la scrollbar est active sur la page. J'ai un bouton en bas de page qui permet de remonter en haut de page lorsque le scroll existe. Et j'aimerais donc masquer ce bouton si le scroll n'existe pas.

    Un truc du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(body.scroll == 0){
    		$('#up').hide();
    	}
    Mais évidemment ça marche pas. Soyez pas trop dur, je débute en JS.

    Merci de votre aide.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    Mais évidemment ça marche pas. Soyez pas trop dur, je débute en JS.
    il faut être curieux et lire la documentation .scrollTop().

  3. #3
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut
    Si j'avais réussi en lisant la doc ce sujet n'existerait pas.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Citation Envoyé par RollinGStaR95 Voir le message
    Si j'avais réussi en lisant la doc ce sujet n'existerait pas.
    je ne sais trop comment te répondre...tu te fous de ma g.... ou est tu sûr d'avoir lu la bonne documentation...ou une erreur de copier/coller sûrement.

    Je vais garder calme et sérénité de par vers moi pour te dire que nulle part tu ne trouvera body.scroll, en "pur" javascript non plus d'ailleurs.

    Je t'engage donc à re-parcourir la documentation, mais utilises le lien que j'ai mis, je viens de le revérifier à toute fins utile.

  5. #5
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut
    je ne sais trop comment te répondre...tu te fous de ma g....
    Pour si peu, fallait carrément pas répondre !
    Je t'engage donc à re-parcourir la documentation, mais utilises le lien que j'ai mis, je viens de le revérifier à toute fins utile.
    Ce que j'ai fait, et malgré mes tests, cela ne fonctionne pas comme je le souhaite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ($('#main').scrollTop()==0){
    	$('#up').hide();
    }
    else{
    	$('#up').show();
    }

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Pour si peu, fallait carrément pas répondre !
    je me risque quand même à répondre

    $('#main').scrollTop()
    signifie que tu testes l'élément ayant pour ID main ce qui ne doit pas être réellement ce que tu souhaites!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pour savoir si la scrollbar est active sur la page.
    on serait plutôt sur l'observation de $(window).scrollTop().

    Maintenant si tu veux observer la variation de la valeur du scroll de la page il te faut mettre une surveillance sur celle ci, pour se faire il existe la méthode .scroll() que l'on va appliquer sur l'objet jQuery $(window).

    Si l'on résume on pourrait avoir un code du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $(function() {
      $(window).scroll(function (){
        if( $(this).scrollTop() == 0){
          $('#up').hide();
        }
        else{
          $('#up').show();
        }
      });
    });
    on encapsule dans $(function(){....}); pour éviter d'éventuel effet de bord au chargement de la page.

    Il te faut également mettre ton élément up en display:none au départ.

  7. #7
    Membre averti
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut
    Ca marche nickel ! Merci du coup de main !
    Par contre, je comprends pas trop pourquoi on est forcé d'y mettre un display:none au départ. Car on demande en js de toute façon de cacher le bouton si scrollTop == 0.

    Et en effet sans le display none il le laisse tout le temps affiché. Comment se fait-ce ?

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Et en effet sans le display none il le laisse tout le temps affiché. Comment se fait-ce ?
    simplement au début on ne passe pas dans la fonction attendu que l'événement de scroll n'a pas encore eu lieu.

  9. #9
    Invité de passage
    Homme Profil pro
    Geek professionnel
    Inscrit en
    Août 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Geek professionnel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2019
    Messages : 1
    Par défaut Tester la hauteur du conteneur par rapport à son scrollHeight
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function isScrollbarVisible() {
        var main = document.querySelector('div.liste');
        return (main.offsetHeight < main.scrollHeight) ? true : false;
    }
    Il suffit simplement de comparer la hauteur de l'élément HTML dans lequel s'affiche (ou non) la scrollbar, par rapport à la hauteur prise par le scrolltrack.
    Ici, l'exemple est pour une scrollbar verticale, mais c'est tout aussi fonctionnel pour une horizontale en changeant offsetHeight par offsetWidth, et scrollHeight par scrollWidth.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/01/2012, 16h25
  2. [MySQL] Tester si InnoDB est actif
    Par stix74 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/01/2009, 14h19
  3. Tester si un process est encore actif
    Par Damien2212 dans le forum Windows
    Réponses: 2
    Dernier message: 17/09/2004, 15h33
  4. Tester si un champ est NULL
    Par titititi007 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/06/2003, 10h17
  5. tester si une date est valide
    Par Andry dans le forum Langage
    Réponses: 5
    Dernier message: 17/09/2002, 11h54

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