在滚动以固定其位置时捕获div

抄送

我试图拥有一个固定的垂直导航栏,但是只有在用户向下滚动到它时才可以。我将其放置在标题下为66px,并且一旦用户向下滚动至其66px边距并固定在屏幕上就需要捕获它,但是我可以看到它并不完美。https://jsfiddle.net/1krd9zpc/7/

$(window).on('scroll', function() {
if($(window).scrollTop() > $('#navbox').offset().top){
    $('#navbox').css({
        'top': $(window).scrollTop() > 0 ? '0px' : '66px',
        'position': 'fixed'
    });
 }
});

这段代码(由Mathias W改进)可以正常工作,当我们向上滚动时,需要将其重置为先前的位置。

马蒂亚斯·W

您必须应用css属性position并将其值设置为fixed(position:fixed)。

$(window).on('scroll', function() {
  $('#navbox').css({
      'top': $(window).scrollTop() > 0 ? '0px' : '66px',
      'position': 'fixed'
      });
});

参见小提琴:

https://jsfiddle.net/3g52v5oh/

如果您只想在滚动时到达元素时“捕获”,则可以使用$('#navbox')。offset()。top检查navbox的偏移位置。

$(window).on('scroll', function() {
    if($(window).scrollTop() > $('#navbox').offset().top){
        $('#navbox').css({
            'top': $(window).scrollTop() > 0 ? '0px' : '66px',
            'position': 'fixed'
        });
    }
});


更新接受的答案

将导航盒的顶部偏移量保存到变量,然后检查窗口的scrollTop值是小于还是大于

var navboxHeight = $('#navbox').offset().top;
$(window).on('scroll', function() {
    if($(window).scrollTop() > navboxHeight){
        $('#navbox').css({
            'top': $(window).scrollTop() > 0 ? '0px' : '66px',
            'position': 'fixed'
        });
    }
    // Reset navbox to it's default position
    if($(window).scrollTop() < navboxHeight){
        $('#navbox').css({
            'top': '',
            'position': 'static'
        });
    }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

滚动时如何固定div的位置?

来自分类Dev

固定位置时如何检测div中的滚动

来自分类Dev

当滚动位置低于其 top 属性时移动 div

来自分类Dev

div图像位置固定+滚动

来自分类Dev

使div(位置:固定)水平滚动

来自分类Dev

仅限Chrome:滚动固定div时出现固定位置滚动问题

来自分类Dev

将固定位置的 div 滚动到其底部然后停止

来自分类Dev

滚动时使相对位置div跟随固定位置div

来自分类Dev

如何使div固定位置水平滚动?

来自分类Dev

滚动窗口时如何固定按钮位置

来自分类Dev

滚动时固定gridview标头的位置

来自分类Dev

滚动窗口时如何固定按钮位置

来自分类Dev

滚动时更新div的位置

来自分类Dev

滚动时是否可以使div位置固定但与容器保持对齐?

来自分类Dev

滚动时是否可以使div位置固定但与容器保持对齐?

来自分类Dev

当我使用固定位置滚动时无法使 div 跟随

来自分类Dev

在向下滚动时保持固定的div

来自分类Dev

绝对定位div伸出可滚动的固定位置div

来自分类Dev

应用固定位置时的过渡 div

来自分类Dev

位置绝对,但滚动固定

来自分类Dev

在固定位置 div 上使用 jquery 淡入/淡出功能时,防止页面自动向上滚动

来自分类Dev

向下滚动组件后,如何设置“位置:固定”而不将组件恢复到其原始位置?

来自分类Dev

如何在滚动<div>中固定工具提示的位置?

来自分类Dev

jQuery位置DIV固定在滚动条上

来自分类Dev

jQuery位置DIV固定在滚动条的顶部

来自分类Dev

HTML / CSS:滚动div而不将位置设置为固定或绝对

来自分类Dev

jQuery位置DIV固定在滚动条的顶部

来自分类Dev

HTML / CSS:滚动div而不将位置设置为固定或绝对

来自分类Dev

水平滚动固定div,同时保持身体位置

Related 相关文章

  1. 1

    滚动时如何固定div的位置?

  2. 2

    固定位置时如何检测div中的滚动

  3. 3

    当滚动位置低于其 top 属性时移动 div

  4. 4

    div图像位置固定+滚动

  5. 5

    使div(位置:固定)水平滚动

  6. 6

    仅限Chrome:滚动固定div时出现固定位置滚动问题

  7. 7

    将固定位置的 div 滚动到其底部然后停止

  8. 8

    滚动时使相对位置div跟随固定位置div

  9. 9

    如何使div固定位置水平滚动?

  10. 10

    滚动窗口时如何固定按钮位置

  11. 11

    滚动时固定gridview标头的位置

  12. 12

    滚动窗口时如何固定按钮位置

  13. 13

    滚动时更新div的位置

  14. 14

    滚动时是否可以使div位置固定但与容器保持对齐?

  15. 15

    滚动时是否可以使div位置固定但与容器保持对齐?

  16. 16

    当我使用固定位置滚动时无法使 div 跟随

  17. 17

    在向下滚动时保持固定的div

  18. 18

    绝对定位div伸出可滚动的固定位置div

  19. 19

    应用固定位置时的过渡 div

  20. 20

    位置绝对,但滚动固定

  21. 21

    在固定位置 div 上使用 jquery 淡入/淡出功能时,防止页面自动向上滚动

  22. 22

    向下滚动组件后,如何设置“位置:固定”而不将组件恢复到其原始位置?

  23. 23

    如何在滚动<div>中固定工具提示的位置?

  24. 24

    jQuery位置DIV固定在滚动条上

  25. 25

    jQuery位置DIV固定在滚动条的顶部

  26. 26

    HTML / CSS:滚动div而不将位置设置为固定或绝对

  27. 27

    jQuery位置DIV固定在滚动条的顶部

  28. 28

    HTML / CSS:滚动div而不将位置设置为固定或绝对

  29. 29

    水平滚动固定div,同时保持身体位置

热门标签

归档