当你回到带有turbolinks的页面时,Skrollr.js似乎停止了工作。如果您再次手动刷新页面或通过data-no-turbolink链接转到页面,它可以正常工作。
我试过用所有可能的方式调用函数但仍然没有运气,主要是:
$(document).on('ready page:load', function () {
var s = skrollr.init();
});
$(document).on('ready page:change', function () {
var s = skrollr.init();
});
这里有一个类似的问题,但接受的答案是你应该禁用turbolinks。我想知道如何让skrollr在启用turbolink的情况下工作。
答案 0 :(得分:5)
最终计算出来。 你需要正常调用skrollr然后使用skrollr.init()。refresh();在您的pushstate插件的新页面或加载页面功能上。因此,使用turbolinks可以使用:
$(document).on('page:load', function () {
skrollr.init().refresh();
});
希望这可以节省很多时间。
答案 1 :(得分:0)
我所做的是在destroy()
事件上调用Skrollr page:before-change
方法,我还修改了skroll.js并将这些事件命名为(将.skroll
添加到它们中):
_addEvent(window, 'resize.skroll orientationchange.skroll) …')
所以在调用destroy()方法之后,还要:
$(window).off("resize.skroll");
$(window).off("orientationchange.skroll");
希望这有帮助。