粘性导航元素在滚动过程中跳转

亚伦·M

特别是在Firefox中,我遇到了一个无法解决的问题。

在下一页上,向下滚动时,页面会跳几次-主要是在较小的屏幕上,其中页面未显示其完整尺寸。您可以通过将浏览器缩小为小于页面的大小来复制此问题,因此必须滚动。

在此页上:http : //www.nucanoe.com/zh-CN/frontier-accessories/

如果我position:fixed在导航选择器上禁用,则可以解决此问题-但我们需要使导航保持粘性。有解决此问题的解决方案吗?我在想我们可能需要以某种方式使用jQuery。

提前致谢!

雕刻师

看到您寻求其他答案的帮助后,我会尽力为您解释清楚。

问题

您的问题是,当您添加position:fixed到导航栏中时,它会将其从其位置删除,并将其粘贴在页面顶部。这就是为什么您的其他内容会跳起来的原因-因为导航栏不再是原来的位置。

怎么修

您可以通过将导航元素包装在新的容器中来解决此问题div-我们将其称为nav-wrapper-并将其高度设置为与导航元素相同。这些被称为占位符元素。此新包装程序和原始导航栏必须始终保持相同的高度,以使“跳转”消失。

<div class="nav-wrapper" style="height:80px;"> <-- add this

    <div class="your-original-nav" style="height:80px"></div>

</div> <!-- add this

现在,当您将导航栏设置为,fixed并且它消失在顶部时,我们创建的具有相同高度的新包装器将使页面内容保持不变。除去固定类后,它会再次位于包装器中,而不会压低内容。

一条建议

从您的网站上可以看到,导航栏的位置将有很大的空白,直到新的固定导航到达该点并覆盖它为止。您想要的是一个小jQuery,以找出在哪里固定导航和在哪里隐藏导航。我会解释:

// cache the element
var $navBar = $('.your-original-nav');

// find original navigation bar position
var navPos = $navBar.offset().top;

// on scroll
$(window).scroll(function() {

    // get scroll position from top of the page
    var scrollPos = $(this).scrollTop();

    // check if scroll position is >= the nav position
    if (scrollPos >= navPos) {
        $navBar.addClass('fixed');
    } else {
        $navBar.removeClass('fixed');
    }

});

您可能想在此示例中添加更多功能,因为它非常非常基础。您可能想重新计算窗口调整大小上的偏移量作为一项附加项。

演示

这是一个可以帮助您的小演示-我很无聊,觉得很有帮助:)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

uitableview在滚动过程中滞后

来自分类Dev

uitableview在滚动过程中滞后

来自分类Dev

滚动过程中动画丢失

来自分类Dev

ListView在滚动过程中更改项目

来自分类Dev

在滚动过程中更改背景颜色

来自分类Dev

CSS,Jquery:在滚动过程中添加类

来自分类Dev

在滚动过程中调整视图大小

来自分类Dev

回调功能在滚动过程中触发

来自分类Dev

在引导程序中滚动过程中未出现“活动”

来自分类Dev

ConEmu中的vim-滚动过程中的奇怪问题

来自分类Dev

Android:在滚动过程中,ArrayAdapter中的ListView发生更改

来自分类Dev

UIPageViewController:子控制器在滚动过程中忽略状态栏的高度

来自分类Dev

自定义CollectionView标头在滚动过程中消失(自定义UICollectionFlowLayout)

来自分类Dev

绘制矩形在滚动过程中不会从屏幕上掉落

来自分类Dev

滚动过程中显示的终端线,请使用CLI

来自分类Dev

工具栏不会折叠,因为在滚动过程中应使用TabLayout

来自分类Dev

在列表滚动过程中禁用onClick以查看列表视图项目的视图

来自分类Dev

在启动过程中启动服务

来自分类Dev

启动过程中的PID污染

来自分类Dev

opendkim启动过程中的问题

来自分类Dev

在启动过程中唤醒硬盘

来自分类Dev

HTML元素的游标在之后设置,但在拖动过程中未设置

来自分类Dev

粘性导航使标头跳转

来自分类Dev

以不同的用户身份在启动过程中启动过程

来自分类Dev

以不同的用户身份在启动过程中启动过程

来自分类Dev

在启动过程中启动apache服务器

来自分类Dev

如何在启动过程中插入linuxefi模块

来自分类Dev

Tomcat错误:子容器在启动过程中失败

来自分类Dev

Anypoint Studio / Mule在启动过程中挂起

Related 相关文章

热门标签

归档