3

約 500 名のリストを含むページがあります。ユーザーがたとえばsキーボードで入力すると、ページは で始まる名前に自動的にスクロールしますs

これらの名前の最初の文字を に変換し、INTその INT を data-attribute として指定し、ページに jQuery 関数を追加する必要がありますか、それともより良い解決策がありますか?

4

3 に答える 3

5

Sidで始まる名前など、適切な を使用して div 内の各文字の名前のリストを埋め込むことをお勧めします。

<div id="S">
  ... names with S ...
</div>

次に、jQuery を使用してキーを押したときに反応し、

location.href = '#S';

次に、ブラウザは自動的に適切なdiv. これのもう1つの利点は、URLを使用してお気に入りに入れることもできるため、Sを持つすべての人に直接ジャンプしたい場合は、これを簡単に行うことができます.

更新: jQueryの.keypress()関数は文字自体ではなく数字のみを返すため、変換する必要があります。文字を数値に、またはその逆に変換する方法の例については、Javascript で文字を ASCII コードに変換するを参照してください。

于 2013-01-18T13:08:56.807 に答える
0

タグにはid付きのセクションを使用する必要があると思います。次に、jquery から $.scrollTop() を実行します。

$(window).scrollTop($('section#user_id').offset().top);
于 2013-01-18T13:13:54.237 に答える
0

もう少し速いものを探している場合は、次のトリックを実行できます (名前は順序付けられていると思います)。

特定の文字を持つ最初の要素に を追加しid="letter_X"、ユーザーがスクロールするときに、id をアンカー ( my_url#letter_X) として使用するだけです。

これは私が知っている最速の方法ですが、1文字しか機能しません。

PS: html5 では、アンカーは要素 ID になり、任意の html 要素に追加できます。

于 2013-01-18T13:08:40.100 に答える