Я создаю веб-приложение, которое имеет сетку из множества небольших прокручиваемых элементов div (на самом деле, редакторы Ace) и в этой сетке достаточно элементов, чтобы она была больше окна. Когда пользователь начинает прокручивать пустое пространство, я хочу, чтобы он прокручивал само окно; когда пользователь начинает прокручивать элемент сетки, я хочу, чтобы он прокручивал там содержимое div. Дело в том, что если пользователь начинает прокручивать пустое пространство, а затем прокручивает так, что его мышь проходит по элементу сетки, этот прокручиваемый div захватывает все события прокрутки, прерывая поток пользователя по сетке и «захватывая» их внутри сетки. элемент.
Я не могу вручную захватывать события onmousewheel
, так как, насколько мне известно, невозможно зафиксировать горизонтальное движение колесика мыши отдельно от вертикального, и я хочу, чтобы пользователи Mac OS X могли прокручивать во всех направлениях. Я думал об использовании JS для добавления невидимого div с очень высоким z-индексом в первое событие onscroll
и его удаления, как только события onscroll
не запускаются в течение определенного периода времени. Еще не закодировал это, но мне интересно, есть ли лучшее решение или есть ли какие-то потенциальные ловушки, о которых я не подумал. Любая помощь или совет были бы замечательными! Спасибо!