powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как запретить прокрутку нижележащего окна?
17 сообщений из 17, страница 1 из 1
Как запретить прокрутку нижележащего окна?
    #38661933
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно, есть некий div fixed с прокруткой, нижележащее окно также с прокруткой.
Если прокручивать верхний див скроллером мыши, по достижении нижнего/верхнего предела начинает крутиться нижележащее окно.

http://jsfiddle.net/Fx6mm/2/

Попытка остановить прокрутку с помощью stopPropagation не помогла (или я неверно понимаю, как в данном случае она работает)

Поиском нашел только способ - отслеживать mouseenter/mouseleave на верхнем диве и ставить нижележащему диву overflow: hidden, но это как-то криво, есть ли способ логичнее и проще?
...
Рейтинг: 0 / 0
Как запретить прокрутку нижележащего окна?
    #38661971
Goror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Как мне кажется, нижнее окно не крутится (если не двигать вообще маус, после первого фокуса) если чуть двинуть маус, когда уже достигнут предел прокрутки, начинает двигаться второе окно (нижнее)


p.s Наверно нужно убирать скролл у нижнего окна, когда появляется fixed окно, или просто когда фокус на нём.
...
Рейтинг: 0 / 0
Как запретить прокрутку нижележащего окна?
    #38661972
Goror
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Хотя нет.. Ошибся (померещилось)) оно двигается, только с каким-то непонятным запасом прокрутки колесика на мышке, 4-5 раз крутануть после достижения предела лимита fixed окна, и начинает двигаться нижнее окно..
...
Рейтинг: 0 / 0
Как запретить прокрутку нижележащего окна?
    #38661991
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

вот тут правильно написано (первый ответ) :)
ответ на вопрос

так что stopPropagation и preventDefault обычно помогают, когда надо что-то отключить. Но не в этом случае.
...
Рейтинг: 0 / 0
Как запретить прокрутку нижележащего окна?
    #38662005
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Програмёрпервый ответЭто дизаблит нафиг весь скроллинг окна браузера, а мне надо, чтобы скроллинг работал в пределах того окна, надо которым курсор, не уходя глубже.
...
Рейтинг: 0 / 0
Как запретить прокрутку нижележащего окна?
    #38662024
Програмёр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Мне кажется, что иначе никак. проверяем окно в фокусе, проверяем можно ли скролить. Если нельзя - disable ))
...
Рейтинг: 0 / 0
Как запретить прокрутку нижележащего окна?
    #38662065
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал в FF 29.0.1
Работает почти идеально.

В минусах: иногда продолжает двигаться фоновое окно даже если мышь на вложенном окне. Но после пары махов мышой из-в вложенного окна проблема исчезает, выглядит как будто FF не всегда сразу понимает что мышь находится в области встроенного окна.
...
Рейтинг: 0 / 0
Как запретить прокрутку нижележащего окна?
    #38662068
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, давно не виделись! ))

White OwlПопробовал в FF 29.0.1что именно пробовал-то?
...
Рейтинг: 0 / 0
Как запретить прокрутку нижележащего окна?
    #38662080
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proчто именно пробовал-то?Твой пример из первого поста топика.
...
Рейтинг: 0 / 0
Как запретить прокрутку нижележащего окна?
    #38662085
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык это пример о том, как не хотелось бы ))

Попробовал в FF - скроллинг начинается с задержкой. То есть - крутишь вниз, докручивается до конца диалог, потом крутишь - какое-то время ничего не происходит, потом начинает крутиться фон.

В ИЕ, Опере, Хроме фон начинает прокручиваться немедленно, как только заканчивается "запас хода" у диалога.
...
Рейтинг: 0 / 0
Как запретить прокрутку нижележащего окна?
    #38663045
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги!

Покурив мануалы и примеры и внимательно проанализировав, что я хочу, докладываю!

Для начала определимся с понятиями, чтобы не путаться - есть прокрутка колеса мыши - 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

вручную прокрутить элемент на нужное количество пикселей
пока не пробовал, но это уже жесть какая-то (((
...
Рейтинг: 0 / 0
Как запретить прокрутку нижележащего окна?
    #38670117
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, проблема актуальна! )
...
Рейтинг: 0 / 0
Как запретить прокрутку нижележащего окна?
    #38679212
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
up!

Что, никто не хочет даже попробовать повозиться?
...
Рейтинг: 0 / 0
Как запретить прокрутку нижележащего окна?
    #38679246
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Я пробовал, честно. Но за короткий период не решил проблему.

Вот тебе некоторые идеи, раз остальные молчат.

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

Я бы в таком направление начал исследовать.
...
Рейтинг: 0 / 0
Как запретить прокрутку нижележащего окна?
    #38679353
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyОба ли они срабатывают когда скроллить уже некуда. Если что-то не срабатывает в конце то отключай через JSТак в том-то и проблема. Wheel срабатывает всегда и ДО скролла. В тот момент, когда я смогу определить, есть куда скроллить или нет, wheel уже сработал и отменить его нельзя.

GustlyПопробуй окружить все одним большим дивом.окружить весь контент сайта не получится - там сразу возникает много других проблем с абсолютным позиционированием хедера и футера
...
Рейтинг: 0 / 0
Как запретить прокрутку нижележащего окна?
    #38679386
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Под отменой я имел в виду, что крутить вверх, на столько на сколько прокрутилось вниз. Правда может быть эффект дергания. Например смотрим где курсор. Если не на боди то крутить боди вверх.
...
Рейтинг: 0 / 0
Как запретить прокрутку нижележащего окна?
    #38679390
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, это я пробовал - неюзабельные дикие пляски в некоторых браузерах.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как запретить прокрутку нижележащего окна?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]