我目前正在使用onepage_scroll.js 插件
main.onepage_scroll({
loop: false,
animationTime: 750,
pagination: false
});
以及使用 Ajax 来获取新内容 - 但是当添加 ajax 请求时,不会针对新内容更新 onepage_scroll 的功能。
我尝试在 ajax 成功时再次运行 onepage_scroll 插件,这似乎是一个糟糕的性能选择,而且有点 hack-y,但它获得了我能够实现的最接近的成功。
beforeSend: function() {
$('<span class="loading"></span>').hide().prependTo('body').fadeIn(300);
main.addClass(removingClass);
setTimeout(function() {
main.empty();
}, 750);
},
success: function(data, textStatus, xhr) {
setTimeout(function() {
$('.loading').remove();
main.html(data).removeClass().removeAttr('style');
main.onepage_scroll({
loop: false,
animationTime: 750,
pagination: false
});
}, 750);
}
如您所见,在再次调用插件之前,我必须删除添加的类(通过 onepage_scroll)并删除所有内联样式(也是 onepage_scroll)。
除了 hacky 之外,这让关键事件(向上键向上滚动,向下键向下滚动,空格向下,shift+空格向上)运行多次,每次我调用 ajax 时额外滚动一个面板请求(即:2 个 ajax 请求导致一次按键滚动 3 个面板)。
有没有办法自动将 onepage_scroll 功能添加到新添加的 ajax 内容中,而无需再次调用整个插件?或者可能是在ajax调用后保留原始按键功能的一种方法?
谢谢你的帮助!