Bootstrap AFFIX和窗口onload事件不起作用

时间:2019-05-06 14:56:21

标签: jquery html bootstrap-4

我对引导程序很陌生,当用户向下滚动时,我使用词缀将标头粘贴在页面顶部。

粘贴在 HTML 部分:

<section class="m-book-now full-width affix" data-spy="affix">

我设法通过以下代码实现了这种效果:

$(function() {
  $('section.m-book-now').affix({
    offset: {
      top: $('section.m-book-now').offset().top
    }
  }); 
});

HTML正确地变成了这样:

<section class="m-book-now full-width affix-top" data-spy="affix">

,在某些页面中,此“立即读物”模块的顶部有一个图像滑块。问题是offset()。top给我错误的偏移号,因为顶部的图像仍在加载中。 我尝试使用 window onload事件(因此所有内容均已呈现)解决了此问题。 但以下代码不起作用:

$(window).load(function() {
  $('section.m-book-now').affix({
    offset: {
      top: $('section.m-book-now').offset().top
    }
  });
});

使用 window.load 事件,在HTML呈现后,它就会如下所示:

<section class="m-book-now full-width affix" data-spy="affix">

错误地删除了词缀顶部,并将模块粘贴在顶部,而无需滚动。 这是为什么?如何结合窗口加载事件解决offset()。top的正确计算?

预先感谢

1 个答案:

答案 0 :(得分:0)

以这种方式更改代码:

$(window).load(function() {

成为:

$(window).on("load", function (e) {})

必须以这种方式工作。