Javascript для замораживания тела на мобильном телефоне (запрет прокрутки и т. Д.) - PullRequest
0 голосов
/ 15 января 2019

Есть ли способ заставить тело кадра не реагировать на мобильный телефон (то есть не реагировать на прикосновения)?

Я загружаю полноэкранный iframe, и каждый раз, когда я касаюсь чего-то в iframe, кажется, что тело позади iframe оказывается затронутым. Например, тело начинает прокручиваться или нажимается.

Это происходит только тогда, когда я использую функцию javascript внутри своего iframe, как будто моя функция внутри iframe влияет на тело снаружи.

Я бы хотел предотвратить воздействие на тело, пока мой фрейм находится в поле зрения. Что я мог сделать?

1 Ответ

0 голосов
/ 15 января 2019

Это происходит потому, что ваш iframe находится внутри тела вашего сайта. Это на самом деле ожидаемое и правильное поведение.

Представьте себе чрезмерное упрощение HTML:

<body>
 <iframe />
</body>

Как вы можете видеть, iframe будет внутри тела, поэтому, щелкая что-нибудь в iframe, вы проходите через тело.

Если вы хотите избежать неожиданного поведения, попробуйте добавить слушателей событий в ваше тело и использовать event.preventDefault(). Вы можете сделать это с помощью события прокрутки и т. Д. Вы можете прочитать больше о protectDefault и scroll . То же самое относится и к другим событиям, которые вы хотите смягчить.

Вы также можете отключить прокрутку с помощью CSS:

с использованием Jquery ( source ): Это полностью отключит прокрутку:

$('html, body').css({
    overflow: 'hidden',
    height: '100%'
});

Для восстановления:

$('html, body').css({
    overflow: 'auto',
    height: 'auto'
});

Но так как это CSS, вы можете просто добавить overflow: 'hidden', height: '100%' к своим стилям, и это сделает это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...