【发布时间】:2015-07-22 00:18:00
【问题描述】:
我在我的网站上添加了一个粘性“号召性用语”栏,它的工作方式类似于粘性导航,但是它被固定在窗口底部,它在页面中的原始位置被滚动过去,然后又跳回到文档的流程。
它使用 CSS 类 '.sticky' 在滚动位置小于 bar 原始位置的垂直位置时添加固定位置。
问题是,当我调整页面大小时,我得到了令人讨厌的闪烁,并且该栏经常从视图中消失。
我正在使用的代码如下...
(function() {
$(window).on('resize', function() {
var stickyNavTop = $('#wrap-bar').offset().top;
var stickyNav = function(){
var scrollBottom = $(window).scrollTop() + $(window).height() - $('.cta-bar').height();
if (scrollBottom < stickyNavTop) {
$('#wrap-bar').addClass('sticky');
$('#wrap-bar-dummy').show();
} else {
$('#wrap-bar').removeClass('sticky');
$('#wrap-bar-dummy').hide();
}
};
stickyNav();
$(window).scroll(function() {
stickyNav();
});
});
$(document).ready(function() {
$(window).trigger('resize');
});
})(jQuery);
谁能指出我需要更改哪些内容才能让栏在调整大小时停止闪烁的正确方向?
谢谢。
【问题讨论】:
-
这可能是个奇怪的想法,但你能用 CSS 将 #wrap-bar 位置设置为绝对位置,然后设置底部:0 吗?那么就不需要 jQuery 了吗?
-
我需要 jQuery,因为我希望栏在页面变为不同部分时跳回页面流程。例如,当表单或页脚在视图中时,号召性用语是不相关的。
-
我认为您可以使用 CSS 来做到这一点。然后,如果栏到达某个锚点,您可以使用 jQuery 将栏保持在锚点位置。
标签: javascript jquery html css