Это происходит потому, что ваш 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%'
к своим стилям, и это сделает это.