Как отключить прокрутку тела документа?

У меня есть HTML, у которого много контента, и вертикальная полоса прокрутки появляется, как только загружается HTML. Теперь из этого HTML загружается полноэкранный IFRAME. Проблема в том, что когда IFRAME загружен, родительская полоса прокрутки все еще сохраняется, я хочу отключить полосу прокрутки при загрузке Iframe.

Я пробовал:

  • document.body.scroll = "no", он не работал с FF и хром.
  • document.style.overflow = "hidden"; после этого я все еще мог прокручивать, и весь iframe прокрутил бы вверх, показывая родительский HTML.

Мое требование - когда IFRAME загружается, мы никогда не сможем прокручивать весь IFRAME, если родительский HTML имеет полосу прокрутки.

Любые идеи?

Ответы

Ответ 1

Если вы хотите использовать панель прокрутки iframe, а не родительскую, используйте это:

document.body.style.overflow = 'hidden';

Если вы хотите использовать родительскую полосу прокрутки, а не iframe, вам необходимо использовать:

document.getElementById('your_iframes_id').scrolling = 'no';

или установите атрибут scrolling="no" в свой тег iframe: <iframe src="some_url" scrolling="no">.

Ответ 2

с css

body,html{
  overflow:hidden
}

Ответ 3

Следующий JavaScript может работать:

var page = $doc.getElementsByTagName('body')[0];

Чтобы отключить использование прокрутки:

page.classList.add('noscroll');

Чтобы включить использование прокрутки:

page.classList.remove('noscroll');

В файле CSS добавьте:

.noscroll {
    position: fixed!important
}

Ответ 4

добавить этот css

body.disable-scroll {
    overflow: hidden;
}

и когда отключить запуск этого кода

$("body").addClass("disable-scroll");

и когда включить этот код

$("body").removeClass("disable-scroll")

Ответ 5

Ответ: document.body.scroll = 'no';