2012-11-03 13 views
5

iOS'ta, bir textarea'nın odaklandığı bir div içinde bulunan bir textareas için bile olsa bile, bir textarea'nın odağı olduğunda OS, görünür olmasını (bazen tüm tarayıcı penceresinin yukarı kaydırılması anlamına gelir) sağlar. textarea, klavye tarafından gizlenmez.Klavye ile gizlenen Android tarayıcılarında Textarea

Android tarayıcılarda (Stok tarayıcısını hem 4.0 hem de 4.0 sürümlerinde Chrome'da test ettim), bu gerçekleşmez. Textarea klavye tarafından kaplanır ve kullanıcı ne yazdığını göremez.

Yalnızca Android için geçici bir çözüm olarak, textarea:focus numaralı telefona position: fixed ayarlayıp, ekranın üst kısmına görünür olmasını garanti ediyorum.

Yerleşimimin bütünlüğünü koruyan daha zarif çözümler var mı?

Jsfiddle'a küçük bir örnek verdim. Ne demek istediğimi görmek için bir Android tarayıcısında görüntüle: http://fiddle.jshell.net/5cvj5/show/light/

cevap

6

Ne yaptım ve Facebook'un aynı sorunu aşmak için yaptığı şeyi bulduktan sonra, odak aldığında textarea'nın altında bir boşluk bloğu elemanı eklemek oldu. sonra şöyle bakış altına kaydırmak için: bir seferde sadece hiç bir boşluk ekran var olduğunu

var android_spacer = $('<div/>', { 
    'class' : 'android_spacer' 
}).css({ 
    'width' : '100%', 
    'height' : '200px' 
}).appendTo($('#parent_view')); 

$('#the_textarea').on('focus', function() { 
    $(this).after(android_spacer); 
}); 

$('#the_textarea').on('blur', function() { 
    $('.android_spacer').remove(); 
}); 

Not.

+0

Ben aynı sorunu yaşıyorum ve ben çözümünüzü test ediyordum bakacaklarını, 0 mutlak ve set altına altbilginizde konumunu olun. #parent_view'in ne olduğunu söyler misiniz – zamil

İlgili konular