nav*_*nav 5 jquery facebook facebook-javascript-sdk facebook-canvas
我正在寻找使用LazyLoad技术的图像和无限滚动将新内容加载到我的页面.这两件事都利用$(window).scrollTop()了Facebook画布应用程序内部不起作用的功能.我知道我可以FB.Canvas.getPageInfo()用来获取当前的scrollTop值但是我遇到了一些性能问题,我的代码如下:
var oldScroll = 0; // current scroll
var newScroll = null; // new scroll (fetched from FB.Canvas)
// Override the normal function to work within fb
// !!This seems to kill the browser
$.fn.scrollTop = function() {
return FB.Canvas.getPageInfo().scrollTop;
};
// poll to check for any changes in scroll
setInterval(function() {
newScroll = FB.Canvas.getPageInfo().scrollTop;
if(oldScroll != newScroll) { // have we scrolled at all?
oldScroll = newScroll;
$(window).trigger($.Event('scroll')); // fire a scroll event to keep the rest of the application that is listening
}
}, 1000);
Run Code Online (Sandbox Code Playgroud)
如果我不覆盖scrollTop函数,但是一旦我的浏览器很快崩溃,它似乎没问题.
我完全错了吗?有人已经在FB画布中创建了一种方法吗?干杯.
您是否坚持要scrollTop()重写该函数?最初它适用于您通过 jQuery 选择器提供的任何元素,而您似乎将其限制为仅适用于 facebook 画布。如果任何其他 javascript 尝试使用scrollTop(),它都会惨败,不是吗?
至于解决方案,我已经以几乎相同的方式完成了无限滚动 -setInterval()查看是否已到达底部,然后加载内容,然后再次检查滚动,依此类推。但我不会随时触发窗口的原始滚动事件,因为没有必要 - 至少在我的情况下是这样。
| 归档时间: |
|
| 查看次数: |
2862 次 |
| 最近记录: |