2012-10-24 26 views
15

Son bir saatte, yakınlaştırma ve .scrollTop() sayılarındaki soruları ve en az 20 farklı şeyi denedim - durumum için bile uzaktan çalışılabilir olan her şeyi denedim. sadece kısmi bir çözüm var.scrollTop mobile Safari çalışmıyor

Üç alan ve devam etmek için bir düğmesi olan bir formum var. Devam düğmesi formun geri kalanını açar. Metin alanları seçtiğinizde Safari mobile yakınlaştırır. Özellikle bunu umursamıyorum. Yakınlaştırmayı engellerseniz alanları okumak için çok küçük olabilir ve eğer okunabilir bir yakınlaştırma seviyesinde yüklüyorsam, o zaman sayfanın sadece bir kısmını görebiliyorsunuz, böylece yakınlaştırma davranışı tamam.

Durum şu ki, düğmeye tıklandığında ve formun diğer yarısı göründükten sonra, pencere hala yakınlaştırılmış ve sayfanın rastgele bir ekine bakıyorsunuz. İki taşıma işlemleri olabileceğini hayal kadarıyla

:
1) Aslında formun sonraki kısmı

göründükleri Her şeyi denedim için düğmeye
2) Kaydırma tıkladıktan sonra uzaklaştırmaya viewport content width'u yaklaştırıp uzaklaştırırken buldum ve etiketinde yanıyor, ancak görüntüyü daha büyük veya daha küçük hale getiriyor ve aslında hiç uzaklaştırmıyor. Potansiyel olarak bu başkaları için çalışıyor ama benim için değil, zaten bir seçenek haline getirebilecek bir sürü stil var.

Kaydırma çözümüne karar vermiştim ve .scrollLeft() çalışıyor, ancak .scrollTop(), hangi seçiciyi verdiğim önemli değil. Ben denedim:

$('body').scrollTop 
$('html').scrollTop 
$('document').scrollTop 
$('body,html,document').scrollTop 
$('html:not(:animated),body:not(:animated)').scrollTop 
$('html:not(:animated),body:not(:animated),document:not(:animated)').scrollTop 
$('#content').scrollTop // that's a wrapper div 
$(window).scrollTop 

Herkes .scrollTop() Safari Mobile çalışmak nasıl biliyor musunuz?

+0

Safari Mobile zum yapmayı seviyorum. $ (window) .scrollTop muhtemelen sayfanın en üstünde olduğunu düşünüyor çünkü JS yakınlaştırma yapmıyor. Görüntüyü yukarı kaydırmak yerine formu aşağı taşımaya çalışabilirsiniz. –

cevap

-2

Bunu yapmak için jquery kullanmak gerek yok:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 

Sen sadece sayfadaki bunu yapmak isteyebilirsiniz:

window.scrollTo(0, 0); 

Ayrıca yakınlaştırma hep birlikte kullanarak meta etiketi önleyebilir ile ilgili sorunlar mı yaşıyorsunuz?

0

Çapa kullanmaya çalıştınız mı?

Her yerde çalışmalılar, çünkü bunlar tarayıcıların yerel işlevidir. Bu kodun here

$(function() { 
    $('a[href*="#"]:not([href="#"])').on('click', function() { 
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { 
     var target = $(this.hash); 
     target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); 
     if (target.length) { 
     $('html, body').animate({ 
      scrollTop: target.offset().top 
     }, 1000); 
     return false; 
     } 
    } 
    }); 
}); 
1

Ben yanlış bir şekilde bir şeyler çözmeye çalışıyoruz düşünüyorum ile

Orijinal Mesaj. Yalnızca form alanlarınızın mobil görüntü alanlarında font-size: 16px olduğundan emin olun, bu şekilde Safari yakınlaştırmayacaktır.

Ayrıca, kapınızda position: fixed varsa, scrollTop çalışmayabilir.