Скрыть элемент меню не работает

0

Мне нужно скрыть media-caption класса элемента и сделать его видимым только тогда, когда наведите указатель мыши на него, и первый элемент подменю должен быть видимым, когда наведите курсор мыши на родительское меню.

Я попытался исправить это с помощью jquery, но до сих пор он не работает правильно.

Посмотрите на Fiddle | демонстрационный просмотр скриптов

Я также не могу понять, почему изображение изменяется автоматически, а не элементы media-caption.

Благодарю.

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

  • 0
    Я пытался заставить его работать с использованием CSS, но он не работал, поэтому переключился на JQuery. если я добавляю цвет фона, а не прозрачное изображение, то он работает нормально, но мне нужно, чтобы он работал на прозрачность ..
  • 2
    @ArpitSrivastava Как бы вы наводили курсор на элемент с display: none ?
Показать ещё 4 комментария

3 ответа

1
Лучший ответ

Вероятно, это не самый оптимизированный образец, но он работает.

Я использую jquery для этого, поэтому я удалил каждый элемент hover для подменю в CSS.

Затем я добавляю эффект hover/out с помощью jquery:

$(".dropdown ul li").each(function(){
    $(this).mouseenter(function(){
            $(this).parent().find( ".active" ).css( "display", "none" );
            $(this).find( ".dd-panel" ).css( "display", "block" );

     });
});

 $(".dropdown ul li").each(function(){
    $(this).mouseleave(function(){
            $(this).find( ".dd-panel" ).css( "display", "none" );
            $(this).parent().find( ".active" ).css( "display", "block" );
     });

});

И я добавляю также флаг, чтобы идентифицировать первый элемент, который должен отображаться, если он не зависает:

$(".dropdown li:first-child .dd-panel",$(this)).css( "display", "block" );
$(".dropdown li:first-child .dd-panel",$(this)).addClass("active");

Смотрите эту скрипку

Спросите, есть ли у вас проблемы с этим.

  • 0
    +1 за хорошее объяснение ..
  • 0
    KnowledgeSeeker +1 ты не голосовал
Показать ещё 1 комментарий
0

Рабочий ДЕМО

Попробуй это

    $(document).ready(function () {

    $(".nav>li").on("mouseenter", function () {
        if($(this).find('.dd-panel').length>0)
        {
       $(this).find('.dropdown').addClass("has-panel");
        }
        $(this).find(".media-caption:first").css("display", "block");

    });

    $(".nav>li").find(".dropdown li:not(li:first)").on("mouseenter", function () {

        $(this).parents('.nav>li').find('.media-caption:first').css("display", "none");
    });


});

Надеюсь, это поможет, спасибо

  • 0
    Он разбивает меню без панели и показывает это как мегаменю ..
  • 0
    @KnowledgeSeeker, извините за задержку, которая исправлена, я обновил демо и код
Показать ещё 1 комментарий
0

нет необходимости в jquery. Сначала удалите jquery.. и ваш код работает нормально.

если вы не хотите отображать первый подтип изображения, просто удалите следующий код

.dropdown li:first-child .dd-panel

из вашего файла css

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

Ещё вопросы

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