1

キーダウンイベントで2つの異なる要素、最初のプレスで1番目の要素、2番目のプレスで2番目の要素にスクロールし、2回のプレス(またはヒット)ごとにイベントを繰り返しようとしています。以下にリンクされている JSFiddle デモを作成しました。

フィドル

ご覧のとおり、2 回目のプレス (またはヒット) では一番下の要素までスクロールしません。私が考えることができる唯一のことは、2番目のイベントに「.offset().top」以外のものを使用することです。しかし、JS の達人が私のコードを見ると、バグや、目的の効果を得るための別の解決策が見つかるかもしれません。前もって感謝します!

.offset().top ???

主なバグは解決されましたが、新しいバグが明らかになりました..ユーザーが上矢印をクリックした場合にヒット変数をゼロにリセットする方法はありますか??

もうバグはありません!このスクリプトを自由に使用してください。

4

1 に答える 1

0

オフセットの定義を参照してください

ドキュメントを基準にして、一致した要素のセット内の最初の要素の現在の座標を取得します。

ここでの問題は、 #wrap要素をアニメーション化したときです。そのオフセットが変更される最も簡単な解決策は、事前にその位置を取得することです。編集した JSfiddleを参照してください。次の 2 行のコードを追加し、spot1/spot2 に従ってアニメーションを実行します。switch ケースは正常に実行されます。

var spot1 = $("#scrollToHere2").position().top;
var spot2 = $("#scrollToHere").position().top;
于 2012-10-21T01:01:05.430 に答える