1

divWeb ページには、特定のボタンまたは画像をクリックすると表示されるオーバーレイがあります。バックグラウンドでのスクロールを避けるためoverflow: hiddenに、オーバーレイが表示されたときに本体に CSS クラスを追加しました。

デスクトップブラウザーではこれは期待どおりに機能しますが、iOS Safari (私の場合は iOS 12.x) では機能しません。ページは引き続きバックグラウンドでスクロールします。

誰かが解決策を知っていますか?

$('.item-overlay, .item-overlay .morelink').on('click', function(e) {
  overlay_id = $(this).parent().parent().attr('id') + '-popup';
  page_link = $(this).attr('data-typolink');

  $('#' + overlay_id).css('display', 'flex').hide().fadeIn(300);
  $('#' + overlay_id).scrollTop(0);

  $('body').addClass('NoScrolling'); // Scrollen im Hintergrund vermeiden (durch Hinzufügen einer entspr. CSS-Klasse)
  $('body').on('touchmove', function(e) { // doesn't work
    e.preventDefault();
  });
});
body.NoScrolling {
  overflow: hidden;
}
4

1 に答える 1

1

とともにoverflow、これらのプロパティも追加して、本文がスクロールしないようにします

body.NoScrolling {
  overflow: hidden;
  position: fixed;
  height: 100vh;
}
于 2019-06-18T10:36:34.240 に答える