2

我非常成功地使用了 ScrollToFixed,一抓。我的内容中有一个扩展的 div,如果扩展了 div,scrollToFixed 端点不会动态增加以适应新的高度。

所以发生的情况是端点保持固定在扩展 div 关闭时最初计算的点。然后 div 将自己固定在中间的某个位置,而不是在 div 展开后应该固定到的位置。

我能想到的最简单的解决方法是在 div 展开后强制 scrollToFixed 重新计算端点,有没有办法做到这一点?

或者当然也欢迎任何其他解决方案!

4

4 回答 4

1

GitHub 示例说调用trigger('resize')您的元素,这似乎在执行重新计算时起作用。但是,没有绑定到您的元素的“调整大小”事件。但是窗口上有,这会导致重新计算。

查看插件代码,有一个事件'resize.ScrollToFixed'。所以我监听窗口调整大小事件,这可能会导致我的元素扩大或缩小,并trigger('resize.ScrollToFixed')在我的元素上做一个。这很好用。

于 2014-03-12T05:02:20.833 回答
1

这个问题已经存在两年了,并且给定的解决方案(它们来自 Github 页面)不适用于我在引导程序上扩展的文本区域。

因此,我编写了一个事件侦听器来动态更新限制的插件基础选项。

如果有人有同样的问题,这里是修复:

将此侦听器添加到 scrolltofixed.js,就在第 386 行的 windowScroll 侦听器之后:

$(document).on("changeLimit",
    function(e) {
        base.options.limit = e.limit;
        checkScroll();
    }
);

将此触发器放在您的应用程序函数中以设置新的限制值(例如动态文本区域大小更改时):

$.event.trigger({
    type: "changeLimit",
    limit: $('.page_wizard').offset().top - your offset
});
于 2015-03-11T10:11:45.517 回答
0

我不确定它是否有效,但是当扩展完成后执行此操作

jQuery(window).scroll();

你用什么函数来扩展div?能给个插件的链接吗?

于 2012-07-04T12:15:01.110 回答
0

@user338128 在正确的轨道上;但是,插件仅在初始化或调整窗口大小时计算或重新计算其“端点”。当 div 扩展或收缩时,调用它:

$(window).resize()

这将导致插件取消其目标,然后重新计算。

于 2012-07-14T18:40:52.497 回答