Выровняйте меню вправо, если lithth child равен 1 или 2

0

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

Поэтому я подумал о том, чтобы показать первое и второе выпадающее меню на правой стороне и отдохнуть слева, но я не уверен, как заставить элемент nth-child работать с инструкцией if.

Пример простой скрипты http://jsfiddle.net/42MfQ/1/

Пример моего мега-меню, который представляет собой близкое шоу, выглядит как этот Изображение 174551 Actual Fiddle Пример мега-меню http://jsfiddle.net/5eecT/13/

Я был бы признателен за помощь в правильном отображении этого меню.

Сейчас этот код работает неправильно

if (($(this).offset().left) + 200 > $('.menu-wrapper').width()) {
    $(this).find(".dropdown").addClass("dropdown-last");
}

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

Я не уверен, как написать этот код

   if($( "li:nth-child(1)" ) == true || "li:nth-child(2)" == true ))
   {
     alert('show dd menu on right side of parent menu');  
   }

else {alert ('show dd menu в левой части родительского меню');
} }

  • 0
    Не все меню на самом деле выпадают. Это по замыслу? Также я не уверен, чего должен достичь Javascript. Кажется, что ответом на этот вопрос является просто «use :nth-child(-n+2) », но я не знаю, делает ли это то, что вы хотите.

1 ответ

0

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

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

$("#menu").on("mouseenter", ":nth-child(4)", function () { $(this).find(".dropdown").addClass("dropdown-last"); });
$("#menu").on("mouseenter", ":nth-child(5)", function () { $(this).find(".dropdown").addClass("dropdown-last"); });
$("#menu").on("mouseenter", ":nth-child(6)", function () { $(this).find(".dropdown").addClass("dropdown-last"); });

Поскольку следующий jQuery давал мне неожиданные результаты на разных разрешениях экрана.

    if (($(this).offset().left) + 200 > $('.menu-wrapper').width()) {
        $(this).find(".dropdown").addClass("dropdown-last");
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню