Прокрутка фиксированного(плавающего) блока(элемента) если он больше окна браузера
Никто не помогает в теме http://javascript.ru/forum/showthrea...644#post443644
в интернете информации по нулям. обращаюсь к специалистам. Есть фиксированное(плавающее) меню ( https://jsfiddle.net/e7gtubLs/10/ ) . оно многоуровневое. если окно браузера(размер экрана) небольшое, то выбрать нижние выпадающие пункты меню НЕВОЗМОЖНО, так как прокручивается страница, а не эти пункты. Нужно - чтобы ЕСЛИ эти выпадающие пункты меню больше окна браузера, то прокрутка основной страницы (body) остановилась, и включилась прокрутка ТОЛЬКО этого выпадающего меню (стандартными полосами прокрутки (сбоку и снизу(если нужно) окна браузера)) (кнопка меню чтобы оставалась закрепленной, а выпадающее меню можно было прокручивать) робота там небольшая, нужен только рабочий скрипт, оформления никакого не нужно. так как денег нет, оплата символическая 300 рублей на карту (реального бабла нет, нигде не зарабатываю, так как верстаю свой сайт) помогите пожалуйста. |
ладно, одолжу 200 рублей в придачу итого символическая награда 500 рублей. Пожалуйста помогите
|
greenseer,
дело даже не в деньгах, а скорее в задании ... попробуйте сделать меню иначе, раз вам никто не может помочь. |
greenseer,
надо не блокировать прокрутку окна документа, ибо как можно при этом использовать его управление, а изменять функционал меню: если размер раскрываемой панели выходит за рамки клиентской области, то она привязывается к родительской опции не по перовой опции, а по последней. То есть панель открывается либо вверх, либо вниз, либо центрируется. |
Спасибо хоть какие то ответы.
laimas, Я понял тебя, но так же не очень красиво будет. Тем боле что есть пункты, которые сами по себе очень длинные в окно например 1024 x 600 или 800*600 не поместятся вовсе. Есть идея при клике на кнопку меню сделать так что бы список раскрываемого меню помещался на страницу в незакрепленном виде (not fixed) но что бы этот список появлялся ПОД фиксированной кнопкой (даже после прокрутки) Короче появление незафиксированного блока, под зафиксированным - Можно ли такую проблему решить? https://jsfiddle.net/e7gtubLs/14/ - типа вот так, но здесь подменю не появляется под кнопкой, после прокрутки |
Цитата:
Меняйте CSS меню так, чтобы если открытая и отцентрированная панель не помещается по высоте в клиентской области, то опции этого меню автоматом будут в две, три колонки. В помощь flex, хотя для стареньких браузеров можно и без него обойтись. |
Прокрутка по горизонтали это я погорячился. Такой прокрутки нет. Меню сделано под 960 px (в раскрытом виде оно 940px).
Это меню отлично подходит под мой сайт. Оно удобное, практичное и легкое. без 4х уровней не обойтись, так как это очень большой сайт с кучей разных тем. Я делал это меню месяц. Не в плане оформления и кода, а в плане сортировки и расстановки пунктов на места. осталось только сделать чтобы оно(.m1) в незафиксированном виде появлялось под кнопкой меню даже после прокрутки. То есть нужно что отследить перемещение fixed кнопки(.m0) и при клике на нее что бы меню 1го уровня(.m1) появлялось под этой кнопкой в незафиксированном виде. и все станет на свои места https://jsfiddle.net/e7gtubLs/14/ - сдесь нужно только сделать так что бы пункты меню(.m1) появлялись под кнопкой(.m0) даже после перемещения короче говоря нужно что бы под зафиксированным блоком появился незафиксированный Это все решает, только как это сделать? в нете инфу ищу уже 2рой день. |
Цитата:
Цитата:
|
по горизонтали 960. по вертикали не определено (все зависит от количества подпунктов)
Цитата:
та что на счет "что бы под зафиксированным блоком появился незафиксированный" |
Цитата:
|
все сначала, почему нельзя просто
отследить координаты m0, потом сказать .m1 иди ка на эти координаты? это же можно. почему ты мне повторяешь одно и тоже? .m0 не родитель .m1 это отдельный блок https://jsfiddle.net/e7gtubLs/16/ |
пожалуйста скажи что это возможно
|
Цитата:
И вообще, из опыта, слишком большая вложенность меню нервирует пользователей. |
посмотри плиз https://www.youtube.com/watch?v=J6Ae...ature=youtu.be
|
И зачем мне это кино, я что говорю чего-то непонятного? Ну так в сети полно меню, костомизированных списков, всплывающих подсказок следящих за курсором, и подобного, которые имеют поведение мной описанное. Нежели не разу не встречалось такого? И оно работает так, как я и говорю, чего и вам надо, а не выдумывать костылей о каких-то координатах.
|
извините, значит я не понял вас. если там не долго допишите пожалуйста код сюда https://jsfiddle.net/e7gtubLs/16/
|
а если вы говорите о переделывании всего оформления меню, то нет. мне нужно именно такое меню. спасибо
|
Цитата:
if(this.offset.top + this.height > client.height) this.offset.top = this.offset.top - (this.offset.top + this.height - client.height) Все. Так понятно? Как получить нужное в JQ найдете в мануале, как на JS для зоопарков браузеров, в сети, думаю и на форуме об этом тоже есть темы. |
laimas,
Спасибо большое, что объясняете такому непонятливому) думаю я понял, буду разбираться. Спасибо |
Цитата:
мне так не пойдет. я уже объяснил как мне нужно. Я не прошу мне объяснять, будет это удобно или нет, я прошу помочь сделать как мне нужно. а не так "как будет лучше или удобнее" (по твоему мнению) так что ТЕМА НЕ ЗАКРЫТА |
Цитата:
|
в последних просьбах я не просил отменять прокрутку и вставлять
я попросил помочь с появлением ПОД ФИКСИРОВАННЫМ БЛОКОМ что вы полностью проигнорировали. То есть отслеживание положения - а потом в это положение отправка объекта. |
Цитата:
|
ясно. мы один одного просто не понимаем
|
Все ТЕМА ЗАКРЫТА.
мне помогли на другом форуме. не понимаю почему здесь всем всеравно. вот решение - https://jsfiddle.net/e7gtubLs/19/ |
Цитата:
|
я же не просил быть веб дизайнером моего сайта, что красиво а что нет.
я попросил помочь с кодом |
Цитата:
|
я сделаю опрос по меню, и если оно будет неудобным я его передалаю
|
ОСНОВНОЕ ЗАДАНИЕ СДЕЛАНО. Спасибо за помощь одному хорошему человеку. Здесь меню прокручивается только в том случае когда оно выступает за клиентскую область https://jsfiddle.net/e7gtubLs/24/
может кому пригодится. Не понимаю людей которые мне говорили что это невозможно... |
Часовой пояс GMT +3, время: 05:39. |