Facebook应用程序iFrame固定元素

时间:2011-03-28 12:50:28

标签: facebook iframe

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

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

谢谢!

2 个答案:

答案 0 :(得分:2)

如果您使用的是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'}); //

}

也许你可以根据这个原则建立互动?

答案 1 :(得分:0)

我不知道你是谁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);
        }
    });
})();