将facebook canvas app height设置为等于Facebook侧边栏的高度

时间:2012-02-29 07:09:18

标签: javascript jquery css facebook

我有一个Facebook画布应用程序设置,其宽度和高度在高级应用程序设置中是流畅的。

我需要实现的是将我的画布应用程序的高度设置为等于Facebook侧边栏的高度(所有FB添加和链接出现的侧窗格)。 目前画布应用程序设置为流体,它将应用程序的高度设置为等于视图区域,所以会发生的情况是FB侧边栏比视图区域高一点并默认滚动页面,因此在我的画布应用程序下方创建空间。

我已经尝试将高度设置为固定,但是它会从iframe中移除滚动条(向iframe添加隐藏的溢出),这是不可取的,因为应用包含超出固定高度的内容。

检查这一点是为了更好地理解http://jsfiddle.net/v2QKN/5/

2 个答案:

答案 0 :(得分:1)

只要它们到达底部

就停止滚动

好的,这可能不是最好的解决方案。 但是当iframe中的主体已经完全滚动时,那个空白区域一直在发生,所以主窗口滚动接管了。

所以,对我来说一个非常有效的解决方案就是在我不再需要它时停止滚动。用户将在画布内滚动99%。所以要做到这一点,我们只需要几行javascript:

$("body").on("mousewheel", function(e) {

  if ( ( window.innerHeight + document.body.scrollTop) >= $("body").height()  ) {
    e.preventDefault();
    e.stopPropagation();
    document.body.scrollTop = document.body.scrollTop - 1;
  }

});

在此处查看此行动:https://apps.facebook.com/hiphopexpress/

注意:鼠标滚轮事件仅由鼠标滚轮触发。尽管如此,通过此解决方案,我们正在改善绝大多数桌面用户的体验。

答案 1 :(得分:0)

无法将画布应用程序设置为侧边栏的高度,但是您可以使用固定的画布高度以及Javascript SDK setAutoGrow函数,该函数将调整应用程序所包含的框架的大小。适合它的内容。如果您不希望侧栏高于您的应用内容,我认为这是您的最佳选择。