滚动页面上的移动设备的文本输入焦点?

时间:2012-05-23 12:23:31

标签: mobile user-experience

我正在制作一个带有文本输入的移动优化网站,该网站会在您输入时过滤列表。它类似于:http://jquerymobile.com/test/docs/lists/lists-search.html

对于手机,如果您选择输入页面向下滚动以便输入位于页面顶部,那将是一种可用性优势。这样,下面列表中的大部分内容都会在您输入时显示。这有可能和/或有没有人有这方面的经验?谢谢

3 个答案:

答案 0 :(得分:17)

同意 - 这对可用性来说很好。

如果您正在使用jQuery,这应该可以解决问题:

$('#id-of-text-input').on('focus', function() {
    document.body.scrollTop = $(this).offset().top;
});

答案 1 :(得分:7)

更好的解决方案是:

offsetTop

因为.offset().top(或document如果使用Jquery)返回距离第一个定位的的距离,您需要距离{{1}顶部的距离}}

getBoundingClientRect().top返回当前视口位置与元素之间的距离,例如。如果你在元素下方滚动300px,它将返回-300。因此,使用+=添加距离将滚动到元素。 -10是可选的 - 允许在顶部留出一些空间。

答案 2 :(得分:0)

$('input, textarea').focus(function () {
    $('html, body').animate({ scrollTop: ($('input, textarea').offset().top - 10) }, 1);
    return false;
});