Подтвердить что ты не робот

Предотвращение переполнения в Internet Explorer 11

У меня есть сайт с <div>, который можно прокручивать по вертикали. Это хорошо работает. Я также скрываю полосу прокрутки, и это также хорошо работает. CSS по существу

.scrollable {
  overflow-y: scroll;
  -ms-overflow-style: none;
}

В настоящее время у меня проблема, с ним в Internet Explorer 11 и Windows 7 на дисплее с сенсорным экраном. Когда пользователь попадает в верхнюю часть нижней части прокрутки, окно отскакивает (т.е. Происходит перекос). Хотя это будет просто досадой для большинства пользователей, это работает в полноэкранном режиме в киоске, поэтому overscoll позволяет настольному компьютеру заглядывать (а не только в фоновый рисунок браузера).

Мне не удалось разобраться с решением. touch-action (префикс и не), например

html, body, .scrollable {
  -ms-touch-action: none;
  touch-action: none;
}

похоже, ничего не делает, и

document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
document.addEventListener('MSPointerMove', function (e) { e.preventDefault(); }, false);

Этот jsBin показывает проблему.

Итак, каков правильный способ предотвращения переполнения в IE11/Windows 7.

4b9b3361

Ответ 1

Мышление вне поля (см. то, что я там сделал) дало бы родительский элемент - body, section или даже другой div цвет фона, смягчающий основную проблему на рабочем столе, показывающую через?

В противном случае посмотрите на

-ms-scroll-chaining: none;

из http://msdn.microsoft.com/en-us/library/ie/hh772034 (v = vs .85).aspx похоже, что это может решить вашу проблему, хотя я не могу проверить ее сам.

Ответ 2

Проблема может быть решена с помощью свойства word-wrap в css3.I также добавила overflow-x: hidden, чтобы быть уверенным.

.scrollable {
  overflow-y: scroll;
  -ms-overflow-style: none;
  word-wrap:break-word;
  overflow-x:hidden;
            }

Здесь вы можете узнать больше о word-wrap здесь - http://www.w3schools.com/cssref/css3_pr_word-wrap.asp

Если вы не поняли какую-либо часть моего вопроса или это не решило вашу проблему, прокомментируйте и скажите мне, чтобы я был открыт, чтобы ответить на другие вопросы.

Ответ 3

Я считаю, что исправил его, добавив следующее в ваш CSS:

body {
    overflow: hidden;
}

Вы можете увидеть результаты обновленный jsBin

Ответ 4

Попробуйте использовать:

.scrollable {
  overflow: auto;
  zoom: 1;
}

или

.scrollable {
  overflow: hidden;
  zoom: 1;
}

Ответ 5

Эффект отскока от прокрутки не ограничивается Internet Explorer 11 и может отображаться даже в простых приложениях, таких как Блокнот.

Чтобы отключить эффект, установите для следующего раздела реестра значение "0":

HKEY_CURRENT_USER\Software\Microsoft\Wisp\Touch\Bouncing

Ответ 6

Извините, что должен был протестировать перед отправкой ответа.

Я тестировал проблему jsbin и решил ее так. Назначьте эти стили классу scrollie:

.scrollie {
  max-height: 200px;
  width: 300px;
  overflow-y:scroll;
  word-wrap:break-word;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  -o-user-select: none;
  user-select: none;
}