Помогите со скроллингом, плиз
Окно браузера имеет скроллинг, в нем див тоже со скроллингом. Как сделать, чтобы прокручивая до конца див, скроллинг body не срабатывал
(т.е. пока курсор находится в этом диве). |
перехватывать события колеса мыши
|
Событие перехватываю,отключаю скроллинг. Но вместе со скроллингом окна выключается и скроллинг дива.
|
дык не надо собыие отменять, если оно происходит именно в диве. смотрите, откуда пришло событие.
|
Цитата:
У меня есть решение этой задачки, но может Ваше проще? |
konan,
проблема заключается в том, что при вращении колеса мыши браузер следит, где находится скроллер в текущем DIV_е. Если он не дошел до "упора" (т.е. до верха или низа), то браузер посылает сообщения этому DIV_у, а как только упор, так браузер посылает сообщение своему телу (body). Поэтому надо перехватывать момент упора и запрещать дальнейшее распространение события. Тестовый пример можете посмотреть здесь: http://gigalit.info/test107.htm Хочу предупредить, что он нормально работает только в Google Chrome и FireFox. Для Opera, IE надо ещё учитывать высоту скроллера, т.е. доделать скрипт |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Спасибо за помощь! |
Цитата:
|
интересное замечание. Может и правда надо будет вернуть. Но в моем случае один скролируемый див, в котором элементы при наведении подсвечиваются, т.е видно что он активный при наведении.
Еще пришлось подправить вот здесь: if (d1.f) { if (delta == 1) {if (d1.scrollTop == 0) return cancelEvent(event)} else {if (d1.scrollTop == d1.scrollHeight-200) return cancelEvent(event)}; }; т.к. содержимое дива растет со временем. 200 - высота дива P.S. интересно увидеть реализацию на jQuery |
Часовой пояс GMT +3, время: 13:36. |