Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   запрет скрола (https://javascript.ru/forum/events/40621-zapret-skrola.html)

Womanizer94 13.08.2013 02:52

запрет скрола
 
Как можно запретить возможность скролинга?? Функция или метод, css вариации.
P.S. overflow:hidden; не подходит, так как оно просто скрывает полосу скрола

рони 13.08.2013 03:33

Womanizer94,
Вариант блокировки скрола окна

jsru_ 13.08.2013 10:17

/*
Коды клавиш, которые вызывают прокрутку:
  32, // пробел
  33, // pageUp
  34, // pageDown
  35, // end
  36, // home
  37, // left
  38, // up
  39, // right
  40  // down
*/

document.onmousewheel = document.onwheel = function() { 
  return false;
};

document.addEventListener ("MozMousePixelScroll", 
  function() { return false }, false);

document.onkeydown = function(e) {
  if (e.keyCode >= 32 && e.keyCode <= 40) return false;
}

danik.js 13.08.2013 10:46

jsru_, а Space?
И что если на странице есть поле ввода? Как курсор перемещать тогда?

jsru_ 13.08.2013 10:58

Цитата:

Сообщение от danik.js (Сообщение 267257)
jsru_, а Space?
И что если на странице есть поле ввода? Как курсор перемещать тогда?

подредактировал для пробела. запрет прокрутки не влияет на перемещение курсора в окне. или ты про что?

danik.js 13.08.2013 12:46

<script>
/*
Коды клавиш, которые вызывают прокрутку:
  32, // пробел
  33, // pageUp
  34, // pageDown
  35, // end
  36, // home
  37, // left
  38, // up
  39, // right
  40  // down
*/
 
document.onmousewheel = document.onwheel = function() {
  return false;
};
 
document.addEventListener ("MozMousePixelScroll",
  function() { return false }, false);
 
document.onkeydown = function(e) {
  if (e.keyCode >= 32 && e.keyCode <= 40) return false;
}
</script>
<body style="height:1000px">
<textarea autofocus>bla bla</textarea>
</body>

jsru_ 13.08.2013 14:51

danik.js, ты спрашиваешь то, что противоречит вопросу автора. Если ты про перемещение курсора в рамках текстареа клавишами стрелок, то во-первых можно переместить мышкой и этому ничего не мешает, а во-вторых можно придумать миллион ситуаций, где прокрутка окна может помешать. Автор спросил, получил ответ, а ты какие-то левые ситуации приплетаешь.

danik.js 13.08.2013 15:27

Цитата:

Сообщение от jsru_
во-первых можно переместить мышкой и этому ничего не мешает

Мешает. Лень тянуться к мышке когда печатаешь мешает. А пробелы как вставлять? Через Alt+032? Этому же по-твоему ничего не мешает совершенно, да?

jsru_, автор просил запретить возможность скроллинга. Ты же предложил решение которое запрещает перемещение курсора и вставку пробела. Автор явно не это просил )

Womanizer94 13.08.2013 16:28

Извините пожалуйста, небольшая поправка, нужно запретить скролл только по сторонам, а чтобы прокрутка вверх и вниз была возможна


Часовой пояс GMT +3, время: 12:51.