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

jQuery Discussion :

ScrollTop vers une ancre


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Developpeur web et Access VBA
    Inscrit en
    Janvier 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur web et Access VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 457
    Par défaut ScrollTop vers une ancre
    Bonjour,
    J'ai développé ce petit code en javascript, mais je rencontre un problème que je n'arrive pas à régler...
    Je souhaite que quand l'internaute, sur une page de mon site, utilise la roulette de la sourie sur 30pixels il soit envoyé vers le div id="div3" tout en douceur...
    La fonction marche mais reste active tout le temps et de fait l'internaute ne peux plus bouger de la position "div3"...
    Comment faire pour que la fonction ne s'applique que quand on est sur le scroll 30 et plus après ?


    Mon code est là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $(function(){
    	$(window).scroll(
    		function () {
    			if ($(this).scrollTop() > 30) { 
    				    var target = $(this).attr("div3"); //Get the target
    					var scrollToPosition = $(target).offset().top;
     
    					$('html').animate({ 'scrollTop': scrollToPosition }, 1200, function(){
    						$('html').animate({ 'scrollTop': scrollToPosition }, 0);
    					});
    			}
     
    		}
    	);			 
    });
    Merci de votre aide !

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 511
    Par défaut
    Bonjour,

    êtes-vous sûr que votre code fonctionne correctement ? car quand je vois ceci $(this).attr("div3"); à l'intérieur de la fonction de rappel du scroll de window, le mot clé this pointe sur l'élément window et donc il doit obligatoirement avoir une propriété div3 ce qui n'est pas correcte vu que la propriété est invalide.

    J'ai fait un petit exemple fonctionnel permettant de gérer ceci en utilisant une variable go :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="test"></div>
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    #test{margin-top:400px;width:100%;height:200px;background-color:red}
    Code : 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
    $(function() {
      let go=true;
      $(window).scroll(function() {
        if($(this).scrollTop()==0) go=true;
        if ($(this).scrollTop() > 30&&go) {
          goScroll=false;
          var target = "#test";//$(this).attr("div3"); //Get the target
          var scrollToPosition = $(target).offset().top;
     
          $('html').animate({
            'scrollTop': scrollToPosition
          }, 1200);
        }
     
      });
    });
    Montrez nous le code HTML pour mieux comprendre les choses...

  3. #3
    Membre éclairé
    Profil pro
    Developpeur web et Access VBA
    Inscrit en
    Janvier 2003
    Messages
    457
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Developpeur web et Access VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2003
    Messages : 457
    Par défaut
    Bonjour,

    Merci pour le code !
    Mais en fait il y a le même problème, en descendant, la page bouge jusqu'à l'ancre "div3" mais après il n'est plus possible de bouger de cette emplacement...
    Je souhaite juste que la page bouge jusqu'à l'ancre div3 mais puise après de nouveau bouger sur la roulette de la sourie...

    Voir : https://www.denisbillo.com/test3/index.php

    Merci

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 511
    Par défaut
    Bonjour,

    Désolé, c'été mon erreur, remplacez la ligne 6 de mon code précédent par go=false;, la variable goScroll n'est pas définie dans le script, c'est plutôt go qui est utilisée.

Discussions similaires

  1. redirection dynamique vers une ancre qui est fonction d'actions antérieues
    Par j.p.mignot dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/01/2008, 16h33
  2. Lien vers une ancre sur image
    Par achos dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 24/10/2007, 12h29
  3. Réponses: 4
    Dernier message: 04/06/2007, 17h05
  4. lien vers une ancre dans une fonction ???
    Par jojodunord dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 23/12/2005, 00h45
  5. lien vers une ancre dans une fonction ????
    Par jojodunord dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/12/2005, 23h42

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