約 500 名のリストを含むページがあります。ユーザーがたとえばs
キーボードで入力すると、ページは で始まる名前に自動的にスクロールしますs
。
これらの名前の最初の文字を に変換し、INT
その INT を data-attribute として指定し、ページに jQuery 関数を追加する必要がありますか、それともより良い解決策がありますか?
約 500 名のリストを含むページがあります。ユーザーがたとえばs
キーボードで入力すると、ページは で始まる名前に自動的にスクロールしますs
。
これらの名前の最初の文字を に変換し、INT
その INT を data-attribute として指定し、ページに jQuery 関数を追加する必要がありますか、それともより良い解決策がありますか?
Sid
で始まる名前など、適切な を使用して div 内の各文字の名前のリストを埋め込むことをお勧めします。
<div id="S">
... names with S ...
</div>
次に、jQuery を使用してキーを押したときに反応し、
location.href = '#S';
次に、ブラウザは自動的に適切なdiv
. これのもう1つの利点は、URLを使用してお気に入りに入れることもできるため、Sを持つすべての人に直接ジャンプしたい場合は、これを簡単に行うことができます.
更新: jQueryの.keypress()
関数は文字自体ではなく数字のみを返すため、変換する必要があります。文字を数値に、またはその逆に変換する方法の例については、Javascript で文字を ASCII コードに変換するを参照してください。
タグにはid付きのセクションを使用する必要があると思います。次に、jquery から $.scrollTop() を実行します。
$(window).scrollTop($('section#user_id').offset().top);
もう少し速いものを探している場合は、次のトリックを実行できます (名前は順序付けられていると思います)。
特定の文字を持つ最初の要素に を追加しid="letter_X"
、ユーザーがスクロールするときに、id をアンカー ( my_url#letter_X
) として使用するだけです。
これは私が知っている最速の方法ですが、1文字しか機能しません。
PS: html5 では、アンカーは要素 ID になり、任意の html 要素に追加できます。