@ Ds111 s ile benzer bir sorun yaşadım. Web sitem klavye tarafından yukarı itildi, ancak klavye kapandığında aşağı hareket etmedi.
Önce @ ds111 çözümünü denedim ama iki alanım vardı input
. Tabii ki, önce klavye kaybolur, sonra bulanıklık olur (veya bunun gibi bir şey). Böylece input
odak doğrudan bir girişten diğerine geçtiğinde klavyenin altındaydı.
Ayrıca, tüm sayfa sadece ipad boyutuna sahip olduğundan, "yukarı atlamak" benim için yeterince iyi değildi. Bu yüzden kaydırmayı düzgünleştirdim.
Son olarak, olay dinleyicisini, şu anda gizlenmiş olan tüm girişlere, dolayısıyla live
.
Hep birlikte aşağıdaki javascript snippet'ini şu şekilde açıklayabilirim: Aşağıdaki bulanıklaştırma olay dinleyicisini geçerli ve tüm geleceğe ekleyin input
ve textarea
(= live
): Ek süre (= window.setTimeout(..., 10)
) bekleyin ve sorunsuz bir şekilde yukarı (= animate({scrollTop: 0}, ...)
) kaydırın, ancak yalnızca "klavye yoksa gösterilir "(= 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)
})
Yetkisiz kullanım süresinin (= 10
) çok kısa olabileceğini input
veya textarea
odaklanmasa da odaklanmasa da klavyenin gösterilebileceğini unutmayın . Tabii ki, daha hızlı veya daha yavaş kaydırmayı istiyorsanız, süreyi (= 400
) ayarlayabilirsiniz.