2016-12-31 1 views
0

J'ai ce code et ça marche bien.défilement lisse comment utiliser extrait?

$('a[href*="#"]:not([href="#"])').click(function() { 
if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') 
    && location.hostname == this.hostname) { 
    var target = $(this.hash); 
    target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); 
    if (target.length) { 
     $('html, body').animate({ 
      scrollTop: target.offset().top 
     }, 1000); 
     return false; 
    } 
} 

});

Mais aussi j'ai quelques éléments et je ne veux pas appliquer un défilement lisse pour eux! Comment puis-je le faire ? Exemple - http://codepen.io/zoom/pen/ggYaXZ Je ne veux pas aplly à < li><a href="#apple">Scroll to Section Apple</a></li>

Répondre

0

Vous pouvez utiliser un autre attribut data-:

$('a[href*="#"]:not([href="#"]):not([data-no-smooth-scroll])').click(function() { 

Et dans votre html ajouter à data-no-smooth-scroll="true" le lien correspondant:

<a href="#apple" data-no-smooth-scroll="true">Scroll to Section Apple</a> 

Voici une fourchette à votre codepen:
http://codepen.io/anon/pen/dNbYKe

+0

thks c'est une bonne idée – Dmi

0

Vous pouvez créer une instruction if qui supprimerait le défilement régulier de tous les éléments ayant une certaine classe, c'est-à-dire class="notThis".

Dans ce cas, vous devez ajouter cette classe à l'élément de lien #apple: <a class="notThis" href="#apple">Scroll to Section Apple</a>.

Ce serait quelque chose comme ça

$('a[href*="#"]:not([href="#"])').click(function() { 
    if ($(this).attr("class") !== "notThis"){ 
    if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) { 
    var target = $(this.hash); 
    target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); 
    if (target.length) { 
     $('html, body').animate({ 
     scrollTop: target.offset().top 
     }, 1000); 
     return false; 
    } 
    } 
    } 
}); 
+0

Merci pour la pensée – Dmi

+0

s'il vous plaît donner un point si vous pensiez qu'il était utile :) – sebasaenz