Tôi đã có một vấn đề tương tự như @ ds111 s. Trang web của tôi đã bị bàn phím đẩy lên nhưng không di chuyển xuống khi bàn phím đóng lại.
Đầu tiên tôi đã thử giải pháp @ DS11 nhưng tôi có hai input
trường. Tất nhiên, đầu tiên bàn phím biến mất, sau đó mờ xảy ra (hoặc một cái gì đó như thế). Vì vậy, cái thứ hai input
nằm dưới bàn phím, khi tiêu điểm chuyển trực tiếp từ đầu vào này sang đầu vào khác.
Hơn nữa, "nhảy lên" không đủ tốt cho tôi vì toàn bộ trang chỉ có kích thước của ipad. Vì vậy, tôi làm cho cuộn trơn tru.
Cuối cùng, tôi đã phải gắn trình nghe sự kiện vào tất cả các đầu vào, ngay cả những đầu vào, hiện đang bị ẩn, do đó live
.
Tất cả cùng nhau tôi có thể giải thích đoạn mã javascript sau đây là: Đính kèm trình nghe sự kiện mờ sau đây vào hiện tại và tất cả tương lai input
và textarea
(=live
): Đợi một khoảng thời gian ân hạn (= window.setTimeout(..., 10)
) và cuộn trơn tru lên trên (= animate({scrollTop: 0}, ...)
) nhưng chỉ khi "không có bàn phím hiển thị "(= if($('input:focus, textarea:focus').length == 0)
).
$('input, textarea').live('blur', function(event) {
window.setTimeout(function() {
if($('input:focus, textarea:focus').length == 0) {
$("html, body").animate({ scrollTop: 0 }, 400);
}
}, 10)
})
Xin lưu ý rằng thời gian gia hạn (= 10
) có thể quá ngắn hoặc bàn phím vẫn có thể được hiển thị mặc dù không có input
hoặc textarea
được tập trung. Tất nhiên, nếu bạn muốn cuộn nhanh hơn hoặc chậm hơn, bạn có thể điều chỉnh thời lượng (= 400
)