|
|
|
Как запретить прокрутку нижележащего окна?
|
|||
|---|---|---|---|
|
#18+
Собственно, есть некий div fixed с прокруткой, нижележащее окно также с прокруткой. Если прокручивать верхний див скроллером мыши, по достижении нижнего/верхнего предела начинает крутиться нижележащее окно. http://jsfiddle.net/Fx6mm/2/ Попытка остановить прокрутку с помощью stopPropagation не помогла (или я неверно понимаю, как в данном случае она работает) Поиском нашел только способ - отслеживать mouseenter/mouseleave на верхнем диве и ставить нижележащему диву overflow: hidden, но это как-то криво, есть ли способ логичнее и проще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 20:18 |
|
||
|
Как запретить прокрутку нижележащего окна?
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Как мне кажется, нижнее окно не крутится (если не двигать вообще маус, после первого фокуса) если чуть двинуть маус, когда уже достигнут предел прокрутки, начинает двигаться второе окно (нижнее) p.s Наверно нужно убирать скролл у нижнего окна, когда появляется fixed окно, или просто когда фокус на нём. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 21:55 |
|
||
|
Как запретить прокрутку нижележащего окна?
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Хотя нет.. Ошибся (померещилось)) оно двигается, только с каким-то непонятным запасом прокрутки колесика на мышке, 4-5 раз крутануть после достижения предела лимита fixed окна, и начинает двигаться нижнее окно.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 22:00 |
|
||
|
Как запретить прокрутку нижележащего окна?
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, вот тут правильно написано (первый ответ) :) ответ на вопрос так что stopPropagation и preventDefault обычно помогают, когда надо что-то отключить. Но не в этом случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 22:56 |
|
||
|
Как запретить прокрутку нижележащего окна?
|
|||
|---|---|---|---|
|
#18+
Програмёрпервый ответЭто дизаблит нафиг весь скроллинг окна браузера, а мне надо, чтобы скроллинг работал в пределах того окна, надо которым курсор, не уходя глубже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 23:19 |
|
||
|
Как запретить прокрутку нижележащего окна?
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Мне кажется, что иначе никак. проверяем окно в фокусе, проверяем можно ли скролить. Если нельзя - disable )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 23:43 |
|
||
|
Как запретить прокрутку нижележащего окна?
|
|||
|---|---|---|---|
|
#18+
Попробовал в FF 29.0.1 Работает почти идеально. В минусах: иногда продолжает двигаться фоновое окно даже если мышь на вложенном окне. Но после пары махов мышой из-в вложенного окна проблема исчезает, выглядит как будто FF не всегда сразу понимает что мышь находится в области встроенного окна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 00:52 |
|
||
|
Как запретить прокрутку нижележащего окна?
|
|||
|---|---|---|---|
|
#18+
Привет, давно не виделись! )) White OwlПопробовал в FF 29.0.1что именно пробовал-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 01:02 |
|
||
|
Как запретить прокрутку нижележащего окна?
|
|||
|---|---|---|---|
|
#18+
Shocker.Proчто именно пробовал-то?Твой пример из первого поста топика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 01:30 |
|
||
|
Как запретить прокрутку нижележащего окна?
|
|||
|---|---|---|---|
|
#18+
Дык это пример о том, как не хотелось бы )) Попробовал в FF - скроллинг начинается с задержкой. То есть - крутишь вниз, докручивается до конца диалог, потом крутишь - какое-то время ничего не происходит, потом начинает крутиться фон. В ИЕ, Опере, Хроме фон начинает прокручиваться немедленно, как только заканчивается "запас хода" у диалога. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 01:40 |
|
||
|
Как запретить прокрутку нижележащего окна?
|
|||
|---|---|---|---|
|
#18+
Коллеги! Покурив мануалы и примеры и внимательно проанализировав, что я хочу, докладываю! Для начала определимся с понятиями, чтобы не путаться - есть прокрутка колеса мыши - wheel , есть прокрутка окна - scroll Для удобства повторю ссылку на свой фиддл http://jsfiddle.net/Fx6mm/2/ По хорошему мне не требуется блокировать scroll на нижнем окне (и вообще любые действия на нем), юзер должен иметь возможность пользовать его элементы (отодвинув диалог в сторонку, открыв два диалога и т.п.), соответственно решение с overflow:hidden не подходит. При этом, c эстетической точки зрения нужно заблокировать wheel, если этот wheel происходит, когда курсор мыши находится не над нижним окном (фиг с ним, я готов пожертвовать wheel на нижнем окне в принципе, пусть там останется только scroll, но при этом wheel должен работать на верхнем окне). Что выяснено опытным путем: Сначала возникает событие wheel на каждом вложенном элементе под курсором мыши. При этом "всплытие" и "погружение" события отлавливаются корректно. Если отменить событие wheel с помощью preventDefault, scroll не произойдет нигде , вне зависимости на каком этапе всплытия применить preventDefault Далее происходит событие scroll. Он происходит вроде бы до фактического скроллинга (или, по крайней мере до перерисовки экрана), однако отменить это событие нельзя (по крайней мере мне не удалось, судя по приведенным тут разнообразным решениям, не только мне. Попытка вернуть scrollTop на предварительно запомненное место приводит к неэстетичным пляскам в некоторых браузерах. Исходя из вышесказанного, я пока не вижу пути, как можно выполнить требуемую задачу. про wheel: http://learn.javascript.ru/mousewheel Возможно не вижу его только я. У кого-нить есть идеи? ЗЫ: теоретически можно поймать событие wheel запомнить верхний элемент, с которого оно спустилось запомнить свойство события deltaY отменить wheel вручную прокрутить элемент на нужное количество пикселей пока не пробовал, но это уже жесть какая-то ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 23:03 |
|
||
|
Как запретить прокрутку нижележащего окна?
|
|||
|---|---|---|---|
|
#18+
Коллеги, проблема актуальна! ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2014, 11:18 |
|
||
|
Как запретить прокрутку нижележащего окна?
|
|||
|---|---|---|---|
|
#18+
up! Что, никто не хочет даже попробовать повозиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2014, 08:31 |
|
||
|
Как запретить прокрутку нижележащего окна?
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Я пробовал, честно. Но за короткий период не решил проблему. Вот тебе некоторые идеи, раз остальные молчат. Проверяй события колеса и скролла. Оба ли они срабатывают когда скроллить уже некуда. Если что-то не срабатывает в конце то отключай через JS скролл. Попробуй окружить все одним большим дивом. Я бы в таком направление начал исследовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2014, 09:17 |
|
||
|
Как запретить прокрутку нижележащего окна?
|
|||
|---|---|---|---|
|
#18+
GustlyОба ли они срабатывают когда скроллить уже некуда. Если что-то не срабатывает в конце то отключай через JSТак в том-то и проблема. Wheel срабатывает всегда и ДО скролла. В тот момент, когда я смогу определить, есть куда скроллить или нет, wheel уже сработал и отменить его нельзя. GustlyПопробуй окружить все одним большим дивом.окружить весь контент сайта не получится - там сразу возникает много других проблем с абсолютным позиционированием хедера и футера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2014, 10:26 |
|
||
|
Как запретить прокрутку нижележащего окна?
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Под отменой я имел в виду, что крутить вверх, на столько на сколько прокрутилось вниз. Правда может быть эффект дергания. Например смотрим где курсор. Если не на боди то крутить боди вверх. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.06.2014, 10:48 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=38662065&tid=1446960]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
93ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 211ms |
| total: | 397ms |

| 0 / 0 |
