2017-04-27 1 views
0

Je voudrais que mon élément pour montrer à position fixe que lorsque offset().top est plus grand que 300pxImpossible d'obtenir cette déclaration pour travailler

Voici mon code:

$(window).scroll(function() { 
    if ($(window).offset().top > 300) { 
     $(".uparrow").css('position','fixed'); 
    } 
    else { 
     if ($(window).offset().top < 300) { 
      $(".uparrow").css('display','none'); 
     } 
    } 
}) 
+0

S'il vous plaît inclure HTML, et un extrait/violon trop – sol

+0

Je ne peux pas poster un code, mais aussi j'ai quelques erreurs dans la console http: // Imgur .com/a/o7EPG – Atomix

+0

soyez prudent, votre position de défilement peut être exactement de 300, vérifiez donc avec <= 300' – Sysix

Répondre

2

Votre console navigateur est votre ami . Cela vous dira tout de suite ce qui ne va pas. Dans ce cas, vous auriez reçu une erreur dans votre console Uncaught TypeError: Cannot read property 'top' of undefined - cela vous mènerait vers la résolution de votre problème.

Vous avez besoin $(window).scrollTop() pas $(window).offset().top

Vous pouvez aussi ne pas besoin de votre seconde instruction if. Ceci est couvert par votre précédente déclaration autre

IE

$(window).scroll(function() 
    { 
    if ($(window).scrollTop() >= 300)  
    { 
     $(".uparrow").css('display','inline-block'); 
     $(".uparrow").css('position','fixed'); // <- this is pretty pointless given you never change it when less than 300 pixels. 
     console.log('I am fixed'); 
    } 
    else 
    { 
     $(".uparrow").css('display','none'); 
     console.log('I am hidden'); 
    } 
    }) 
+0

Merci, maintenant je ne reçois pas d'erreurs mais mon élément a toujours l'affichage: aucun – Atomix

+0

Ajouté un peu plus - vous ne changez jamais le css d'affichage, vous ajoutez seulement une position. Il n'y avait pas de basculement réel. Vous ne savez pas exactement ce que vous essayez de réaliser, bien que le code ci-dessus fonctionne. – Darren