2009-11-21 3 views
3

У меня есть меню, состоящее из <ul> в веб-CMS. Я хочу, чтобы несколько пунктов меню имели подпозиции, которые отображаются в выпадающем списке. Эти подпункты: <ul> s также.Виджет выпадающего меню Javascript

В основном это легко сделать с помощью нескольких строк CSS и Javascript, но я ищу готовое решение Javascript, который помогает мне справиться следующее:

  • Обработайте края экрана ситуации: Если любая часть выпадающего меню будет находиться за пределами текущего окна просмотра, поместите его так, чтобы он полностью находился в области просмотра.

Это сука, чтобы закодировать с нуля.

«Приятно иметь» s будет:

  • Centered позиционирование ниже раскрывающегося меню

  • Добавление события OnClick к телу так, что при нажатии вне выпадающего меню будет закрыто Это; чистое удаление события onclick впоследствии

Но те, которые я могу сделать сами, если необходимо.

Хороший, маленький, ненавязчивый виджет, который волшебным образом преобразует мой <ul> будет прекрасным.

Если решение основано на структуре, оно должно быть прототипом, так как это то, что я использую в CMS.

ответ

3

Вы можете получить смещения UL и проверить, находятся ли они на определенном расстоянии от области просмотра.

// Pseudo code 
var ul = document.getElementById("menu"); 
if(ul.offset.x + ul.width > viewport.width) { 
    ul.offset.x = viewport.width - ul.width; 
} 

Это также можно получить точное положение кнопки выпадающего щелкнул, а затем вы должны применять основные математические для того, чтобы расположить меню под ним.

+0

Да, это путь. Я знаю, однако, из предыдущего опыта, что это правильно (с учетом прокручиваемых контейнеров, абсолютного/относительного позиционирования и много чего), а затем заставляя его работать во всех браузерах, имеет тенденцию съедать много времени. Мне бы хотелось обойти это :) –

+0

В этом случае библиотека действительно поможет, к сожалению, я не могу помочь вам в этом, потому что я предпочитаю использовать свои собственные библиотеки. – 2009-11-21 18:03:20

+0

В конце концов я свернул свой. –

Смежные вопросы