На самом деле, это недостаток команды Safari, но для решения вашей проблемы вы можете использовать JavaScript
решение:
Для настольных браузеров вы можете использовать overflow: hidden
, но для iOS Safari вы должны сначалаобнаружить его, затем использовать функцию JavaScript
для предотвращения прокрутки:
const preventDefault = (e) => {
e = e || window.event;
if (e.preventDefault) {
e.preventDefault();
}
e.returnValue = false;
}
const preventScrollingSafari = () => {
const ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('safari') != -1 && ua.indexOf('chrome') <= -1) {
if (window.addEventListener) {
window.addEventListener('DOMMouseScroll', preventDefault, false);
}
window.onwheel = preventDefault;
window.onmousewheel = document.onmousewheel = preventDefault;
window.ontouchmove = preventDefault;
}
};
и функцию для ее повторного включения:
const enableScrollingSafari = () => {
const ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('safari') != -1 && ua.indexOf('chrome') <= -1) {
if (window.removeEventListener) {
window.removeEventListener('DOMMouseScroll', preventDefault, false);
}
window.onmousewheel = document.onmousewheel = null;
window.onwheel = null;
window.ontouchmove = null;
}
};
Вы можете использовать вышеуказанные функции в своих действиях.