无法使此声明发挥作用

时间:2017-04-27 12:05:05

标签: jquery css if-statement elements

我希望我的元素仅在offset().top大于300px

时才会显示位置

这是我的代码:

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

1 个答案:

答案 0 :(得分:2)

您的浏览器控制台是您的朋友。这会马上告诉你什么是错的。在这种情况下,您可能会在控制台Uncaught TypeError: Cannot read property 'top' of undefined中收到错误 - 这会导致您无法解决问题。

您需要$(window).scrollTop()而不是$(window).offset().top

您也不需要第二个if语句。这包含在您之前的其他声明中

$(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');
     }
  })