2015-05-14 5 views
0

Я в процессе адаптации довольно ошеломляюще выглядящего мега-меню бутстрапа в полностью отзывчивую версию. Я хочу сохранить внешний вид меню, так как он очень привлекателен, однако в меню в настоящее время используется функция выпадающего меню Bootstrap, означающая, что пользователь должен щелкнуть, чтобы открыть меню. На мой взгляд, это не очень хорошо работает на рабочем столе, так как многие ожидают, что меню появится при наведении. Итак, я приспособил меню, используя следующий код, чтобы обеспечить дочерние элементы мега меню отображается при наведении указателя мыши на элемент на рабочем столе:Mega-menu - Невозможно выбрать дочерние элементы при зависании

@media only screen and (min-width: 992px){ 
    .mega-dropdown:hover .mega-dropdown-menu{ 
     display: block; 
    } 
} 

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

enter image description here

Есть ли способ, в котором я могу вызвать меню, чтобы остаться достаточно длинным открытым для пользователя, чтобы перейти в меню ребенка, используя только HTML и CSS? Я знаю, что я мог бы легко использовать Javascript для этого, но в моих глазах Javascript следует использовать экономно и только тогда, когда это действительно необходимо.

Полный код можно найти в этом Codepen:

http://codepen.io/JasonEspin/pen/zGqoBa

ответ

3

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

.navbar-nav>li>.dropdown-menu { 
    margin-top: 0; /* remove applied top margin */ 
    border-top-left-radius: 4px; 
    border-top-right-radius: 4px; 
    border-top: 20px solid transparent; 
} 

Примечание: Я не проверял это на других ширин вам бы так тест, если это то, что требуется в все ширины.

Codepen Demo

+0

Спасибо Paulie_D. Отличное решение только для CSS с фактическим примером кода. – jezzipin

+0

Это не идеально, поэтому вам может потребоваться настроить. Обратите внимание на то, как вы потеряли верхний угол границы-радиус ..oh, и небольшая серая граница сверху видна. –

-1

Применение невидимую отступы к вашему мега меню, которое соединяет ваше меню выпадающего эффективно делает этот разрыв только визуальный один.

и убедитесь, что у вас есть css, чтобы сказать, что когда вы нависаете в мега-меню, он остается открытым.

Таким образом, когда ваша мышь перемещается вниз по пустому пространству, она не умирает.

+0

Это все хорошо, но нет такой вещи, как невидимая набивки – jezzipin

+0

лол Я знаю, что, но ради этого вот что вам нужно. выньте контейнер из вашего мегамена или добавьте к нему новую обертку без фона и пэда, чтобы у вас было невидимое заполнение визуально, по крайней мере, так, чтобы вы могли навести на него без перерыва. – DCdaz

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