Senaryo: Üzerinde çalıştığım proje, içeriğin kullanıcıya yüklenen bir yükleme göstergesiyle birlikte bir Bootstrap 3 modeline eşzamanlı olarak yüklenmesini gerektirir. Asıl yükleme bir sorun değil (aşağıda benim Codepen'ime bakın), ancak yüklenen içerik büyük olduğunda, bir konu iOS 9 cihazlarında ne kayıyor. IOS 8 de dahil olmak üzere denediğim diğer tüm cihazlarda düzgün çalışıyor. DOM'ın kaydırma yüksekliğini güncellemediğini düşünüyorum, bu nedenle modun kaydırılabilir olması gerekmiyor.Dinamik olarak yüklenen Bootstrap Modal, iOS 9 üzerinde ilerlemiyor
Tek çalışma, güvenilir bir şekilde çalıştığını (ancak kabul edilemez), modalın bedenini gizlemek/göstermek ve böylece yeniden hesaplamayı zorlamak olduğunu buldum. Bootstrap'in kendi handleUpdate
işlevi, sorunla ilgilenmez.
Codepen'de http://codepen.io/jkrehm/full/LpRzJV/ (kod kullanılabilir here) adresinde en az bir örnek oluşturdum. Sorularıma bir QR kodu gömebilseydim, böylece telefonlarınızdan kolayca alabilirsiniz. Sadece (içerik önce yüklenir bu yüzden şeyler iyi çalışır, kalıcı gösterilen kodunu değiştirmek, ancak hiçbir yükleme göstergesi kullanıcı için varsa
// Show loader & then get content when modal is shown
$modal.on('show.bs.modal', function(e) {
$(this).find('.modal-body')
.html('loading...')
.load('https://baconipsum.com/api/?type=meat-and-filler¶s=10', function() {
// Use Bootstrap's built-in function to fix scrolling (to no avail)
$modal.modal('handleUpdate');
});
});
:
en alakalı kod budur Düğmeye tıkladıktan sonra ve modal görünmeden önce belirsiz uzunlukta bir duraklama).
Özet: .modal-body
Kaydırma yüksekliğini yeniden hesaplamak için iOS 9'u ikna etmek için ne yapabilirim?
Güncelleme (15 Ağustos 2017):
Görünüşe bu konuya tatmin edici bir çözüm bulunmamaktadır. Bootstrap, modellerden remove-webkit-overflow-scrolling:touch
'a seçti ve Webkit ile ilgili bir bug dosyaladı. Belki bir gün düzeltilebilir, belki de değil. Şimdilik, sağlanan iş çevreleri en iyi "çözümler" dir.
Olası kopyalar [? Kaydırma arka plan önlemek için nasıl ne zaman Bootstrap mobil tarayıcılarda 3 modal açık] (https://stackoverflow.com/questions/19060301/how-to-prevent-background- scrolling-when-bootstrap-3-modal-on-mobile-browse) –
Bu sorunun bir kopyası değildir, ancak cevabın çözülmesi mümkün olabilir. Temel sorun bir tarayıcı hatasıdır (https://bugs.webkit.org/show_bug.cgi?id=158342). Bootstrap bunun için bir çözüme sahip değildir, bu nedenle '-webkit-overflow-scrolling: touch' (tamamen kaldırılmalıdır) (https://github.com/twbs/bootstrap/pull/20803). – jkrehm