入力時にリストをフィルタリングするテキスト入力を使用して、モバイル向けに最適化されたサイトを作成しています。これに似ています: http://jquerymobile.com/test/docs/lists/lists-search.html
電話の場合、入力を選択したときにページが下にスクロールして入力がページの上部に表示されると、使いやすさが向上します。そうすれば、入力したときに以下のリストの多くが表示されます。これは可能ですか、および/または誰かがそれを行った経験がありますか?ありがとう
同意しました-それは使いやすさのためにいいでしょう。
JQueryを使用している場合、これでうまくいくはずです。
$('#id-of-text-input').on('focus', function() {
document.body.scrollTop = $(this).offset().top;
});
より良い解決策は次のとおりです。
_$('#id-of-text-input').on('focus', function() {
document.body.scrollTop += this.getBoundingClientRect().top - 10
});
_
offsetTop
(またはJqueryを使用している場合は.offset().top
)は、最初に配置されたparentからの距離を返しますが、document
。
getBoundingClientRect().top
は、現在のviewport位置から要素までの距離を返します。要素の下を300pxスクロールすると、_-300
_が返されます。したがって、_+=
_を使用して距離を追加すると、要素までスクロールします。 _-10
_はオプションです-上部にスペースを確保します。
$('input, textarea').focus(function () {
$('html, body').animate({ scrollTop: ($('input, textarea').offset().top - 10) }, 1);
return false;
});