【发布时间】:2017-11-19 17:53:33
【问题描述】:
我正在使用 Bootstrap 4 从头开始构建一个网站。这个想法是有一个全屏封面图像,顶部有一个“固定到位”的透明导航栏;这部分很简单,我几乎可以闭着眼睛做。我现在想要实现的是一种效果,因此当用户向下滚动并点击封面图像的末尾时,导航栏将缩小并在顶部保持粘性。
我找到了很多教程和指南来教如何在 Jquery 中执行此操作,但是它们基本上都提供了在“这么多像素”之后使其缩小的代码(在低于 50 的示例中) .我喜欢 Jquery 在一个类中添加然后删除该类的想法,但是我不确定如何修改以便它在到达封面图像的底部而不是 50 像素时激活。
$(window).scroll(function() {
if ($(document).scrollTop() > 50) {
$('nav').addClass('shrink');
} else {
$('nav').removeClass('shrink');
}
});
【问题讨论】:
-
尝试获取封面图片的底部位置并相应地更改您的代码。
-
@camelsWriteInCamelCase Errr 我认为这不是最好的方法。我的封面图片会延伸到您的显示器尺寸...所以每个人都会有不同的底部位置(取决于在他们的屏幕分辨率上)。
-
@user3599852 只需获取图像的高度,如果您达到以像素为单位的“高度”,则意味着您到达了底部(根据具体情况,您可能需要添加导航栏的高度)
-
@Kangouroops 就像我对上面提出相同建议的人所说的那样。这不是一个好的解决方案,因为图像被设置为覆盖整个屏幕,因此图像的高度会根据您的屏幕显示进行拉伸。这意味着每个人的图像高度都会根据屏幕的分辨率而有所不同。
-
@user3599852 这就是您使用 javascript 获得高度的原因。我说的不是原始图片的高度,而是渲染图片的高度。它可能在 window.load...
标签: jquery html css twitter-bootstrap navigation