は、私がscrollTop機能を使用して、ドキュメントのスクロールを設定するには、あなたのslideToggle呼び出しからのコールバックを使用してお勧めします。あなたは、ページに対する切り替えコンテナの先頭位置を取得するためにoffsetを使用してscrollTopスプライトセッターに値を決定することができるでしょう。私はスクロールの動作を、要素が表示されているときにのみ非表示にするように制限することを推奨します。一般的に
、直接ページスクロールを設定すると、やや耳障りUXすることができます。そのため、私は実際にscrollTopスプライト機能を使用してscrollTopスプライトではなく、まっすぐセット、それをアニメーション化あなたのコードを与えるつもりだが、このアプローチは、scrollTopスプライトへの直接呼び出しが均等にページを配置しますよう必要はありません。私はちょうどユーザーとして私はむしろ突然の位置の変化ではなく、徐々にスクロールすると思います。
コードは、例えば、形を取る:
$(".myShowHideLink").click(function() {
$(".myToggleContainer").slideToggle("slow", function() {
if ($(this).is(":visible")) {
$(document).animate({
scrollTop: $(this).offset().top
}, "slow")
}
});
});
あなたが実際にスクロールの設定だけで数ピクセルの容器の上部より上そう$(this).offset().top - 50
または類似のものを使用することもできますが、それは最高ですあなたへ。私は自分の要素が窓の上の境界線に突き当たるのが好きではないことを知ります。
私は腰から撮影してるように私は、このためのテストケースを作成していない謝罪はなく、宣伝通りに動作しない場合、私に知らせて、私は、コードを調整します。お返事のための
こんにちはおかげで、私は私のコーディングは完全にあなたのコードを実装する方法を理解する時点ではまだあるとは思わないが、それは私が取得しようとしているもののように見えるん!今の私は一種の以下$(関数(){ \t \t \t $( "#のshowMoreLink")との望ましい効果を持っている。(関数(){ \t \t $( "#moreTextのを")をクリックします。 。slideToggle(800); \t \t $( 'htmlの、ボディ')アニメーション({scrollTopスプライト:1290}、1200); 復帰はfalse; \t \t \t \t}); \t \tは、しかし、それはそれとして理想的ではありません私はあなたのコードを試してみると、ページが下にスクロールせず、おそらく私はそれを間違って実装していますか?Tha nks again \t}); – Andre
オフセットの呼び出しが欠落しているため、スクロールする位置として要素の上部が取得されます。 '$(document).animate({scrollTop:$("#moreText ")。offset()。top}、1200)'を試してください。 – lsuarez
実際には、文書ではなく、「ボディ」へのアニメーション呼び出しのように見えます。スクロールアニメーションをslideToggleと同時に行うように少し変更して[デモがあります](http://jsfiddle.net/lthibodeaux/pE9hu/)。 – lsuarez