08.02.2017, 11:47
|
Интересующийся
|
|
Регистрация: 06.02.2017
Сообщений: 23
|
|
Прокрутка фиксированного(плавающего) блока(элемента) если он больше окна браузера
Никто не помогает в теме http://javascript.ru/forum/showthrea...644#post443644
в интернете информации по нулям. обращаюсь к специалистам.
Есть фиксированное(плавающее) меню ( https://jsfiddle.net/e7gtubLs/10/ ) . оно многоуровневое. если окно браузера(размер экрана) небольшое, то выбрать нижние выпадающие пункты меню НЕВОЗМОЖНО, так как прокручивается страница, а не эти пункты.
Нужно - чтобы ЕСЛИ эти выпадающие пункты меню больше окна браузера, то прокрутка основной страницы (body) остановилась, и включилась прокрутка ТОЛЬКО этого выпадающего меню (стандартными полосами прокрутки (сбоку и снизу(если нужно) окна браузера))
(кнопка меню чтобы оставалась закрепленной, а выпадающее меню можно было прокручивать)
робота там небольшая, нужен только рабочий скрипт, оформления никакого не нужно. так как денег нет, оплата символическая 300 рублей на карту (реального бабла нет, нигде не зарабатываю, так как верстаю свой сайт) помогите пожалуйста.
|
|
08.02.2017, 12:17
|
Интересующийся
|
|
Регистрация: 06.02.2017
Сообщений: 23
|
|
ладно, одолжу 200 рублей в придачу итого символическая награда 500 рублей. Пожалуйста помогите
|
|
08.02.2017, 14:40
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
greenseer,
дело даже не в деньгах, а скорее в задании ... попробуйте сделать меню иначе, раз вам никто не может помочь.
|
|
08.02.2017, 14:48
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
greenseer,
надо не блокировать прокрутку окна документа, ибо как можно при этом использовать его управление, а изменять функционал меню: если размер раскрываемой панели выходит за рамки клиентской области, то она привязывается к родительской опции не по перовой опции, а по последней. То есть панель открывается либо вверх, либо вниз, либо центрируется.
|
|
08.02.2017, 15:56
|
Интересующийся
|
|
Регистрация: 06.02.2017
Сообщений: 23
|
|
Спасибо хоть какие то ответы.
laimas,
Я понял тебя, но так же не очень красиво будет. Тем боле что есть пункты, которые сами по себе очень длинные в окно например 1024 x 600 или 800*600 не поместятся вовсе.
Есть идея при клике на кнопку меню сделать так что бы список раскрываемого меню помещался на страницу в незакрепленном виде (not fixed) но что бы этот список появлялся ПОД фиксированной кнопкой (даже после прокрутки)
Короче появление незафиксированного блока, под зафиксированным - Можно ли такую проблему решить?
https://jsfiddle.net/e7gtubLs/14/ - типа вот так, но здесь подменю не появляется под кнопкой, после прокрутки
Последний раз редактировалось greenseer, 08.02.2017 в 16:01.
|
|
08.02.2017, 16:50
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от greenseer
|
Я понял тебя, но так же не очень красиво будет.
|
Это почему? Так обычно и решается. А если даже отцентрированный блок субменю не помещается в клиентской области, то это уже не меню. Ну сами подумайте, что это за меню, которое требует прокрутки не только по вертикали, но и по горизонтали.
Меняйте CSS меню так, чтобы если открытая и отцентрированная панель не помещается по высоте в клиентской области, то опции этого меню автоматом будут в две, три колонки. В помощь flex, хотя для стареньких браузеров можно и без него обойтись.
|
|
08.02.2017, 19:10
|
Интересующийся
|
|
Регистрация: 06.02.2017
Сообщений: 23
|
|
Прокрутка по горизонтали это я погорячился. Такой прокрутки нет. Меню сделано под 960 px (в раскрытом виде оно 940px).
Это меню отлично подходит под мой сайт. Оно удобное, практичное и легкое. без 4х уровней не обойтись, так как это очень большой сайт с кучей разных тем. Я делал это меню месяц. Не в плане оформления и кода, а в плане сортировки и расстановки пунктов на места.
осталось только сделать чтобы оно(.m1) в незафиксированном виде появлялось под кнопкой меню даже после прокрутки.
То есть нужно что отследить перемещение fixed кнопки(.m0) и при клике на нее что бы меню 1го уровня(.m1) появлялось под этой кнопкой в незафиксированном виде. и все станет на свои места
https://jsfiddle.net/e7gtubLs/14/ - сдесь нужно только сделать так что бы пункты меню(.m1) появлялись под кнопкой(.m0) даже после перемещения
короче говоря нужно что бы под зафиксированным блоком появился незафиксированный
Это все решает, только как это сделать? в нете инфу ищу уже 2рой день.
|
|
08.02.2017, 19:50
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от greenseer
|
Меню сделано под 960 px
|
По вертикали?
Сообщение от greenseer
|
Я делал это меню месяц. Не в плане оформления и кода, а в плане сортировки и расстановки пунктов на места.
|
Слишком долго, если дерево меню описывается в базе, по которому строится автоматически.
Последний раз редактировалось laimas, 08.02.2017 в 19:59.
|
|
08.02.2017, 21:11
|
Интересующийся
|
|
Регистрация: 06.02.2017
Сообщений: 23
|
|
по горизонтали 960. по вертикали не определено (все зависит от количества подпунктов)
Сообщение от laimas
|
Слишком долго, если дерево меню описывается в базе, по которому строится автоматически.
|
да с деревом проблем не было. я имею в виду название тем, страниц, товаров.. я сортировал темы
та что на счет "что бы под зафиксированным блоком появился незафиксированный"
|
|
08.02.2017, 21:53
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от greenseer
|
та что на счет "что бы под зафиксированным блоком появился незафиксированный"
|
Я уже говорил об этом "если размер раскрываемой панели выходит за рамки клиентской области, то она привязывается к родительской опции не по перовой опции, а по последней. То есть панель открывается либо вверх, либо вниз, либо центрируется."
|
|
|
|