jquery - 无法使此语句起作用

标签 jquery css if-statement element

我希望我的元素仅在 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');
        }
    }
})

最佳答案

您的浏览器控制台就是您的 friend 。这会立即告诉您哪里出了问题。在这种情况下,您会在控制台中收到错误 Uncaught TypeError: Cannot read property 'top' of undefined - 这会引导您解决问题。

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

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

I.E

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

关于jquery - 无法使此语句起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43657291/

相关文章:

jquery : how to use keyboard shortcut F2 and F3

php - AJAX 调用未按预期工作

css - 父元素覆盖子元素样式

css - 匹配具有以特定字符串开头的类名的所有元素

Javascript if block 的奇怪行为

python - 如何在 Python 中实现 "also if"?

vb.net - Endif 前面必须有匹配的 if

asp.net-mvc-2 - 对 iframe 内的内容进行 ajax 替换时触发 iframe onload 事件

html - 文本选择覆盖整个屏幕宽度

javascript - 根据Jquery中的选择删除div