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 :

Mes fonctions javascript ne fonctionnent plus


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2017
    Messages : 3
    Par défaut Mes fonctions javascript ne fonctionnent plus
    Hello,

    Hier, j'insérais un effet parallaxe sur mon site avec simplement du CSS. Parfait

    Par contre, en intégrant le CSS, mes fonctions javascript pour un smooth scrolling et le menu qui change en fonction du scroll ne fonctionnent plus. Mais pourquoi ?

    Je pense que ces deux fonctions "s'interbloquent" mais aucune idée pourquoi. Need your help please

    Le page sans parralaxe mais avec les fonctions JS qui marchent
    Le page avec le parralaxe mais sans les fonctions JS qui marchent pas

    Ma fonction smooth scroll :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // // Smooth Scrolling
            $(document).ready(function() {
              $('.js-scrollTo').on('click', function() { // Au clic sur un élément
                var page = $(this).attr('href'); // Page cible
                var speed = 750; // Durée de l'animation (en ms)
                $('html, body').animate( { scrollTop: $(page).offset().top -100}, speed ); // Go
                return false;
              });
            });
    Ma fonction pour changer le menu pendant le scroll
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    // Change Menu While Scrolling
              //<![CDATA[
              $(window).load(function(){
              // Cache selectors
              var lastId,
              topMenu = $("#top-menu"),
              topMenuHeight = topMenu.outerHeight()+15,
              // All list items
              menuItems = topMenu.find("a"),
              // Anchors corresponding to menu items
              scrollItems = menuItems.map(function(){
              var item = $($(this).attr("href"));
              if (item.length) { return item; }
              });
     
              // Bind to scroll
              $(window).scroll(function(){
              // Get container scroll position
              var fromTop = $(this).scrollTop()+topMenuHeight;
     
              // Get id of current scroll item
              var cur = scrollItems.map(function(){
              if ($(this).offset().top < fromTop)
              return this;
              });
              // Get the id of the current element
              cur = cur[cur.length-1];
              var id = cur && cur.length ? cur[0].id : "";
     
              if (lastId !== id) {
              lastId = id;
              // Set/remove active class
              menuItems
              .parent().removeClass("active")
              .end().filter("[href=#"+id+"]").parent().addClass("active");
              }
              });
              });//]]>
    Merci beaucoup par avance,

  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,
    je crois que c'est la div ayant la classe "parallax" que tu dois animer, et pas le body,html.
    essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $('.parallax').animate(...);
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('body,html').animate(...);

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2017
    Messages : 3
    Par défaut
    Merci pour ta réponse !

    J'ai essayé de modifier : sans succès.

    Je continue de chercher...

  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
    j'ai copié collé le html de ta page qui ne fonctionne pas et enfin c'est comme je t'avais dit, l'animation doit être appliquer sur ".parallax" et pas sur body ni html (smooth scroll).
    puis il y'a d'autres choses a modifier dans le code qui contrôle les <a> de l'ul "#top-menu".
    en bref le code doit être comme ça
    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
    17
     
    $(document).ready(function() {
              $('.js-scrollTo').on('click', function() { // Au clic sur un élément
                var page = $(this).attr('href'); // Page cible
                var speed = 750; // Durée de l'animation (en ms)
                $('.parallax').animate( { scrollTop: $(page).offset().top -100}, speed ); // ici ".parallax"
                return false;
              });
    });
    ...
    ...
    //ici tu dois detecter le scroll de ".parallax" et pas de "window"
    $('.parallax').scroll(function(){
    var fromTop = $(this).scrollTop()+topMenuHeight;
    console.log("fromTop :"+fromTop);
    /* le reste du code ne change pas....*/
    });

Discussions similaires

  1. Mes programmes essentiels ne fonctionnent plus sous Vista
    Par @robase dans le forum Windows Vista
    Réponses: 1
    Dernier message: 11/06/2008, 19h37
  2. fonctions javascript ne fonctionnent pas sous Safari 3.1.*
    Par marion5515 dans le forum Général JavaScript
    Réponses: 19
    Dernier message: 19/05/2008, 13h04
  3. Les traitement Javascript ne fonctionnent plus
    Par paradeofphp dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/01/2008, 13h48
  4. même la fonction "Date" ne fonctionne plus
    Par cyber_cobra_net dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 21/10/2007, 13h44
  5. [2.0][C#][ATLAS] Mon javascript ne fonctionne plus.
    Par elkamy dans le forum ASP.NET
    Réponses: 1
    Dernier message: 19/10/2006, 13h01

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