2011-07-02 43 views
1

我在Chrome上運行有以下摘錄:window.location.replace VS scrollTop的

<a name="example">&nbsp;</a> 

下面的代碼工作正常。它實際上按照預期進入#example。

window.location.replace('#example'); 

但下面確實沒有工作。它總是進入頁面的頂部 - 而不是#example

var target = $('a[name="example"]'); 
var offset = target.offset(); 
var top = offset.top; 
console.log(top); 
$('html, body').animate({scrollTop:top}, 'slow'); 

top返回值500+的東西。 我錯過了什麼? 在此先感謝您的幫助。

UPDATE:

刪除以下CSS

position: fixed; 

以上的jQuery代碼工作後!但我需要這個頁面是「位置:固定的」。 如何讓上述jQuery代碼適用於「position:fixed;」?

+0

什麼? –

+0

你將這個動作綁定到了什麼?點擊事件? –

+0

它適用於Chrome。但是,直接從Chrome控制檯運行代碼會將其置於頁面的頂部。所以,通過綁定事件來檢查某些元素的點擊事件。 – Abhijit

回答

1

您是否確定您的文檔足夠高以便滾動到該位置。 This jsFiddle使用你自己的代碼和我編造的一些HTML來匹配它似乎在Chrome中正常工作。

+0

是的,我的文檔夠高。 – pion

0

,如果一切正常,你可以在動畫完成後添加固定的定位:

有關使用窗口,而不是「HTML,身體」
var el = $('html, body'); 
el.animate({scrollTop:top}, 'slow',function(){el.css('position','fixed');}); 
+0

不幸的是,上述不起作用。它弄亂了我的頁面佈局。 – pion