Мне нужно скрыть media-caption
класса элемента и сделать его видимым только тогда, когда наведите указатель мыши на него, и первый элемент подменю должен быть видимым, когда наведите курсор мыши на родительское меню.
Я попытался исправить это с помощью jquery, но до сих пор он не работает правильно.
Посмотрите на Fiddle | демонстрационный просмотр скриптов
Я также не могу понять, почему изображение изменяется автоматически, а не элементы media-caption
.
Благодарю.
Пожалуйста, не стесняйтесь вносить изменения, чтобы сделать его более профессиональным, поскольку я просто начинающий.
Вероятно, это не самый оптимизированный образец, но он работает.
Я использую 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");
Смотрите эту скрипку
Спросите, есть ли у вас проблемы с этим.
Попробуй это
$(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");
});
});
Надеюсь, это поможет, спасибо
нет необходимости в jquery. Сначала удалите jquery.. и ваш код работает нормально.
если вы не хотите отображать первый подтип изображения, просто удалите следующий код
.dropdown li:first-child .dd-panel
из вашего файла css
li
display: none
?