javascript - Bootstrap Popover 在页面滚动期间闪烁

标签 javascript jquery html twitter-bootstrap

我正在使用 Twitter Bootstrap 来指示屏幕上当前显示的文章部分。无论是否进行单击,都会显示弹出消息。我面临的问题是滚动期间弹出窗口闪烁。我希望弹出窗口稳定并显示消息而不闪烁。我该怎么做?

Bootstrap 弹出窗口:

<a href="#" id="example" class="btn btn-primary" rel="popover" data-content="This is the body of Popover"  data-placement="left"

jQuery 代码:

$(function () {
    $('#example').popover();
});

$(window).scroll(function() {  
    var current = $('[name = "scroll"]');
    if($(window).scrollTop() > 0 ) {
        current.attr("data-content", "Introduction");
        current.popover("show");
    }
    if($(window).scrollTop() > 620 ) {
        current.attr("data-content", "Main Passage");
        current.popover("show");
    }
});

这是工作演示:http://jsfiddle.net/abyz19ja/

最佳答案

它会闪烁,因为您在每个滚动操作上不断调用弹出窗口的显示函数。您需要做的是使用标志或计数器,并仅告诉弹出窗口在其内容已更新时显示。

像这样:

$(function () {
    $('#example').popover();
});
var counter = 0;
$(window).scroll(function() {
    var pos = $(window).scrollTop(); 
    var current = $('[name = "scroll"]');
    if(pos >= 0 && pos < 619) {
      if (current.attr("data-content") != "Introduction") {
        current.attr("data-content", "Introduction");
        current.popover("show");
        counter == 0;
      }
    } else {
      if (current.attr("data-content") != "Main Passage") {
        current.attr("data-content", "Main Passage");
        current.popover("show");
        counter == 0;
      }
    }

    if (counter === 0){
    current.popover("show");
    counter = counter+1;
    }

});

您还需要将弹出框定位为固定位置,以便它保持在同一位置,因为它不再在每次滚动位置更改时重新计算。

.popover {
  position:fixed
}

现在,如果可以的话,尝试通过添加父容器来使其更加明确,例如:

#container .popover {
 position:fixed;
}

否则它将应用于您页面/网站上的所有弹出窗口,具体取决于您如何实现 CSS 以及您是否有任何其他弹出窗口。

关于javascript - Bootstrap Popover 在页面滚动期间闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43630828/

相关文章:

javascript - 如何使用节点和 JavaScript 在按 Enter 之前从终端读取用户输入?

javascript - jQuery Mobile - Spinbox - 多个依赖的 Spinbox

html - 向 bx 内容 slider 添加内容

JQuery UI 显示/幻灯片无法正常工作

javascript - 双星号 ** 是有效的 JavaScript 运算符吗?

javascript - 如何将 api 数据保存到本地存储?

javascript - javascript随机数生成器的最佳选择

javascript - 当 chrome 要求我翻译页面时,避免调整 Jquery 事件的大小

jquery - 如何禁用数据表中仅某一特定列的排序?

html - 多个 CSS 类值