2011-03-28 77 views
2

我想在我的Facebook應用程序的iFrame中有一個固定元素(一個DIV)。所以當用戶向下滾動頁面時,該元素仍然固定在瀏覽器窗口的頂部?Facebook應用程序iFrame固定元素

基本原理:當您向下滾動時,您可以將東西添加到包中,固定的DIV會在您將這些東西添加到包中時顯示您的「得分」。滾動時,「分數計數器」應始終可見。

謝謝!

+0

正常的方法不起作用? http://stackoverflow.com/questions/1216114/how-can-i-make-a-div-stick-to-the-top-of-the-screen-once-its-been-scrolled-to – fingerman 2011-03-28 13:00:48

+0

I不知道?我認爲這可能是一個問題,當它在一個iFrame? – 2011-03-28 14:03:29

回答

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'}); // 

} 

也許您可以基於這個原則,而不是互動?

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); 
     } 
    }); 
})();