2011-07-02 7 views
1

対私は、次のスニペットでChromeで実行しています:window.location.replace 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:

上記のjQueryのコードが動作する以下のCSS

position: fixed; 

を除去した後!しかし、私はこのページを「位置:固定;」にする必要があります。 上記のjQueryコードは、「position:fixed;」でどのように動作させるのですか?

+0

何の代わりに「HTML、体」のウィンドウを使用してはどうですか? –

+0

あなたはこの行動を何に縛っていますか?いくつかのクリックイベント? –

+0

これはChromeで動作します。ただし、Chromeのコンソールから直接コードを実行すると、ページの上部に表示されます。したがって、ある要素のclickイベントにイベントをバインドしてチェックしてください。 – Abhijit

答えて

1

あなたは、その位置までスクロールするには文書の高さが十分であることを確認しましたか? This jsFiddle自分のコードとそれに一致するようにしたHTMLをChromeでうまく使用しているようです。アニメーションが完了した後、それが動作するかどうか

+0

はい、私の医者の身長は十分です。 – pion

0

、あなたは、固定位置を追加することができます。

var el = $('html, body'); 
el.animate({scrollTop:top}, 'slow',function(){el.css('position','fixed');}); 
+0

残念ながら、上記は機能しません。それは私のページレイアウトを混乱させます。 – pion

関連する問題