Jump to content
  • 0

body overflow:hidden не работает в Chrome


Alexander34
 Share

Question

Здравствуйте!

 

Возникли сложности со скроллом в webkit браузерах. Задача: необходимо что-бы по клику на div страница замирала в текущем положении и не возможно было прокручивать с помощью колёсика мыши.

Вот небольшой макет.

<!doctype html><html><head><meta charset="UTF-8"><title>Overflow: hidden</title><style>	.box {		width: 498px;		height: 298px;		border: 1px solid #000;		margin: 5px auto;		text-align: center;	}	.text {		font-size: 150px;		font-family: sans-serif;		font-weight: bold;	}</style></head><body>	<div class="box"><span class="text">1</span></div>	<div class="box"><span class="text">2</span></div>	<div class="box"><span class="text">3</span></div>	<div class="box"><span class="text">4</span></div>	<div class="box"><span class="text">5</span></div>	<script>		var boxes = document.getElementsByClassName("box");		for(var i=0; i<boxes.length; i++) {			boxes[i].onclick = function() {				document.body.style.overflow = "hidden";			}		}	</script></body></html>

Если кликнуть по div, то скрипт применить стиль к body:

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

В chrome скролл исчезает, но страница по-прежнему прокручивается. В FF и IE11 все прекрасно работает. Пробовал через консоль вводить overflow: hidden; , а также в теге style описывал это. Но ничего не помогло.

 

Есть пример http://learn.javascript.ru/metrics-window#запрет-прокрутки . Всё прекрасно работает. Есть предложения ? Спасибо!!!

 

 

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

У меня, видимо, какой-то неправильный хром: все работает, ничего ничем не прокручивается, ни мышкой, ни клавиатурой. Вот.

http://codepen.io/anon/pen/nqlru

Что я делаю не так?

Edited by zenw
Link to comment
Share on other sites

  • 0

У меня, видимо, какой-то неправильный хром: все работает, ничего ничем не прокручивается, ни мышкой, ни клавиатурой. Вот.

http://codepen.io/anon/pen/nqlru

Что я делаю не так?

 

в html файл поместите код и откройте в хроме.

Link to comment
Share on other sites

  • 0

Всем спасибо! Со скриптами вариант верный оказался, все прекрасно работает!

 

document.onmousewheel = function (e) { e.preventDefault();}
 

Хороший пример, остается только добавить код для ie<9(если нужно).

//IE<9: event.returnValue=false;//или жеreturn false;
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy