İPad tabanlı bir web uygulaması üzerinde çalışıyorum ve bir web sayfasına daha az benzemesi için aşırı kaydırmayı önlemem gerekiyor. Şu anda bunu görüntü alanını dondurmak ve fazla kaydırmayı devre dışı bırakmak için kullanıyorum:
document.body.addEventListener('touchmove',function(e){
e.preventDefault();
});
Bu, fazla kaydırmayı devre dışı bırakmak için harika çalışıyor, ancak uygulamamın birkaç kaydırılabilir div'i var ve yukarıdaki kod bunların kaydırılmasını engelliyor .
Yalnızca iOS 5 ve üzerini hedefliyorum, bu nedenle iScroll gibi bilgisayar korsanlığı çözümlerinden kaçındım. Bunun yerine, kaydırılabilir div'lerim için şu CSS'yi kullanıyorum:
.scrollable {
-webkit-overflow-scrolling: touch;
overflow-y:auto;
}
Bu, belge fazla kaydırma komut dosyası olmadan çalışır, ancak div kaydırma sorununu çözmez.
Bir jQuery eklentisi olmadan , fazla kaydırma düzeltmesini kullanıp $ ('. Scrollable') div'lerimi muaf tutmanın bir yolu var mı?
DÜZENLE:
İyi bir çözüm olan bir şey buldum:
// Disable overscroll / viewport moving on everything but scrollable divs
$('body').on('touchmove', function (e) {
if (!$('.scrollable').has($(e.target)).length) e.preventDefault();
});
Görüntü alanı, div'in başını veya sonunu kaydırdığınızda hareket etmeye devam eder. Bunu da devre dışı bırakmanın bir yolunu bulmak istiyorum.