【问题标题】:Facebook Application iFrame Fixed ElementFacebook 应用程序 iFrame 固定元素
【发布时间】:2011-03-28 12:50:28
【问题描述】:

我想在我的 Facebook 应用程序的 iFrame 中有一个固定元素(DIV)。那么当用户向下滚动页面时,那个元素仍然固定在浏览器窗口的顶部?

基本:您在向下滚动时将东西添加到包中,当您将这些东西添加到包中时,固定的 DIV 会显示您的“分数”。 “计分器”在滚动时应始终可见。

谢谢!

【问题讨论】:

标签: facebook iframe


【解决方案1】:

如果您使用 facebook 的 iframe 自动调整大小功能,这是不可能的。一旦 iframe 被调整大小以便不需要滚动,唯一可用的滚动将是父窗口之一。但是,子 iframe 没有关于父窗口滚动的信息(因为它们不在同一个域中......)并且尝试监听滚动事件或滚动位置只会返回滚动条位于位置 0,或者最上面。

但是,您可以监听点击事件并提取点击事件或被点击元素的偏移量。

一些例子:

$('.clickme').click(function(e) {

    e.preventDefault();

    var top;

    // Using click position (e.pageY and e.pageX available)
    top = e.pageY;

    // Using clicked element position
    top = $(this).offset().top;

    $('#moveme').css({'top': top - 100 + 'px'}); //

}

也许你可以将你的互动建立在这个原则之上?

【讨论】:

    【解决方案2】:

    Erik 我不了解你,但这对我帮助不大。 FB.Canvas.getPageInfo 有帮助吗?

    也许这会有所帮助:我正在使用

    (function() {
        var el = $("header:first");
        var elpos_original = el.offset().top;
        $(window).scroll(function(){
            var elpos = el.offset().top;
            var windowpos = $(window).scrollTop();
            var finaldestination = windowpos;
            if(windowpos<elpos_original) {
                finaldestination = elpos_original;
                el.stop().css({'top':0});
            } else {
                el.stop().animate({'top':finaldestination-elpos_original},0);
            }
        });
    })();
    

    【讨论】:

      猜你喜欢
      • 2011-07-26
      • 2011-06-27
      • 1970-01-01
      • 2011-06-27
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多