У меня есть проблема, аналогичная поднятому вопросу здесь , но несколько иной случай.
Функциональность, которую я ищу, почти идентична Веб-сайт National Geographic , где «подглядывание» появляется при наведении курсора на одну из основных ссылок и остается видимым при взаимодействии с ним или при наведении курсора на дочернее меню, но исчезает, если не навести курсор на элемент меню, дочерние ссылкиили "sneak peek".
При наведении указателя мыши на элементы списка ниже, я хотел бы указать DIV, который я указываю (в данном случае, соответствующий номеру - но я бы хотел гибкость, чтобы определитьимя div по отдельности, если числа не существуют или не совпадают [я использую Drupal, и все динамически генерируется]), чтобы выдвинуться или просто появиться под ним (список будет встроен).Он должен оставаться открытым, чтобы люди могли щелкнуть ссылку, которая появляется в DIV, но когда вы наведите курсор мыши на DIV или элемент списка, div должен исчезнуть.
Мой HTML выглядит примерно так:
<div id="navigation">
<ul id="switches">
<li class="item-1">First item</li>
<li class="item-2">Second item</li>
<li class="item-3">Third item</li>
<li class="item-4">Fourth item</li>
</ul>
<div id="block-1" class="block">
<p>First block</p>
<p><a href="http://www.google.com">Click here!</a></p>
</div>
<div id="block-2" class="block">
<p>Second block</p>
<p><a href="http://www.google.com">Click here!</a></p>
</div>
<div id="block-3" class="block">
<p>Third block</p>
<p><a href="http://www.google.com">Click here!</a></p>
</div>
<div id="block-4" class="block">
<p>Fourth block</p>
<p><a href="http://www.google.com">Click here!</a></p>
</div>
</div>
Мой CSS выглядит следующим образом:
#switches li {
display: inline-block;
height: 50px;
background-color: #F33;
}
#block-1,
#block-2,
#block-3,
#block-4 {
position: absolute;
top: 50px;
height: 300px;
width: 500px;
background-color: #999;
display: none;
}
#block-1.active,
#block-2.active,
#block-3.active,
#block-4.active {
display: block;
}
А мой jQuery (основываясь на ответе Карла Мейера на другой поток, который, я уверен, я испортил ужасно) выглядит такэто:
$(document).ready(function() {
switches = $('#switches > li');
slides = $('#navigation > div.block');
switches.each(function(idx) {
$(this).data('slide', slides.eq(idx));
}).hover(
function() {
switches.removeClass('active');
slides.removeClass('active');
$(this).addClass('active');
$(this).data('slide').addClass('active');
});
});
Я не знаком с тем, как работает этот код, и пытался разобраться в нем, но я не уверен, что понимаю использование «idx» и как единственное числотермин «слайд» вступает в игру.
Я довольно новичок в jQuery, и мне поручено выполнение этого проекта.Я ценю любую помощь и надеюсь, что другие найдут ее полезной!