javascript - JQuery 粘条在页面调整大小时闪烁

标签 javascript jquery html css

我在我的网站上添加了一个粘性“号召性用语”栏,它的工作方式类似于粘性导航,但是它粘在窗口底部,它在页面中的原始位置滚动过去,然后跳回文档流。

当滚动位置小于栏原始位置的垂直位置时,它使用 CSS 类“.sticky”添加固定位置。

问题是,当我调整页面大小时,我会出现令人讨厌的闪烁,并且该栏经常从 View 中消失。

我使用的代码如下...

(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);

谁能指出我需要更改哪些内容才能使栏在调整大小时停止闪烁的正确方向?

谢谢。

最佳答案

您报告的闪烁很可能是因为 Javascript 没有像您滚动那样快速地呈现您的 DOM 更改。正如@Switching Brains 所提到的,尝试使用 CSS 将页脚绝对定位在距窗口底部 0px 处。然后,您只需要在到达页面底部时使用 Javascript 进行定位,然后应用您的类将其固定在固定位置。

关于javascript - JQuery 粘条在页面调整大小时闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21286757/

相关文章:

html - 当 background-size 设置为包含时,图像显示得更小并且不会拉伸(stretch)

javascript - 使用 jQuery 和正确的按钮 ID 将正确的内容应用到模式中

javascript - 如何获取超过选择输入的数据属性?

javascript - 制作粘性 JavaScript

javascript - 在我的打印机中,纸张跳纸太多

javascript - 如何在 document.getelementById 中尝试 null.value

javascript - jquery 从下拉菜单更改边框样式

javascript - React 调用函数?

javascript - Node 和 express 。返回给用户并继续执行

javascript - 如何使用changePage链接到内部页面?