2016-07-27 21 views
5

ile ekranın dışına itilmesini nasıl önleyebilirim Düğmeye dokunduğunuzda bir model oluşturan yanıt veren bir web sayfam var. Modal açıldığında, sabit konumlandırmayı kullanarak sayfanın tüm genişliğini ve yüksekliğini alması ayarlanır. Modal da içinde bir giriş alanı vardır.iOS klavyesinin CSS veya JS

iOS cihazlarda, giriş alanı odaklandığında klavye açılır. Ancak, açıldığında, tam belgeyi, sayfamın yarısı görünümün üst kısmının üstüne çıkacak şekilde kaldırır. Gerçek html etiketinin kendisini klavyeyi telafi etmek için yukarı itildiğini ve CSS veya JavaScript ile gerçekleşmediğini doğrulayabilirim.

Bunu daha önce hiç kimse gördü ve öyleyse, klavye açıldıktan sonra bir şeyleri engellemek ya da yeniden konumlandırmak için bir yol var mı? Bu bir problem çünkü modalın üst kısmındaki içeriği görebilmek için kullanıcılara ihtiyacım var, aynı anda giriş alanını otomatik olarak odaklamak istiyorum.

+0

Bunu gördün mü: http://stackoverflow.com/questions/13820088/how-to-prevent-keyboard-push-up-webview-at-ios-app-using -phonegap – Iceman

+0

@Iceman hayır yapmadım. Benzer soruları aramayı denedim ama bunu bulamadım. Deneyeceğim. – rescuecreative

+0

@rescuecreative. IOS8 ve Safari'de benzer sorunlar yaşadığım için bu çözümün IOS8 için faydalı olacağından emin değilim. – ankurJos

cevap

5

her şeyden önce IOS sürümleri için kullanabilirsiniz

<script type="text/javascript"> 
$(document).ready(function() { 
    document.ontouchmove = function(e){ 
      e.preventDefault(); 
      } 
}); 

sonra bu

input.onfocus = function() { 
    window.scrollTo(0, 0); 
    document.body.scrollTop = 0; 
} 
+1

Teşekkürler! Mükemmel çalışıyor. Btw, ben sadece 'document.body.scrollTop = 0' kullanıyorum; –

0

Hem IOS8 hem de Safari yazıcıları sayfa yüklendikten sonra input.focus() için aynı davranır. Her ikisi de elemana zum ve klavyeyi. (Çok emin değilim bu yardım olabilir ama böyle bir şey kullanarak denedim olacak olursa?)

HTML

<input autofocus> 

JS IS

for (var i = 0; i < 5; i++) { 
document.write("<br><button onclick='alert(this.innerHTML)'>" + i + "</button>"); 
} 

//document.querySelector('input').focus(); 

CSS

button { 
width: 300px; 
height: 40px; 
} 

ALso bir kullanıcı aracısı geçici çözümü kullanmak zorunda kalacak, sen

if (!/iPad|iPhone|iPod/g.test(navigator.userAgent)) { 
element.focus(); 
} 
+0

Üzgünüz, belki anlamadım. Düğmeler ve uyarılar nasıl yardımcı olur? – rescuecreative

+0

@rescuecreative Sanırım yanlış anladım. Belki de sanal klavyeyi göstermeye ve sayfa dokunuşundan sonra kaydırmaya çalışıyorsunuz diye düşünüyordum. – ankurJos

+0

Ah, anlıyorum.Hayır, sanal klavyeyi DOM'u viewport'un dışına itmeye çalışıyorum – rescuecreative