У меня есть элемент, который должен быть скользким, когда другой элемент зависнет и останется видимым, когда он зависает над собой. Из-за проблем, связанных с дизайном с большим количеством перекрывающихся элементов и интенсивным использованием z-индекса, я не могу вставить скользящий элемент внутри зависающего элемента; они не могут быть братьями и сестрами.Не скрывать элемент при зависании
HTML-:
<div class="a">
<div class="b">
<div class="c">
<nav class="navvy">
<ul>
<li class="active">
<a href="#" class="one">One</a>
</li>
<li>
<a href="#" class="two">Two</a>
</li>
</ul>
</nav><!--nav-1-->
</div><!--c-->
</div><!--b-->
</div><!--a-->
<div class="slidedown slidedown-one">
<div class="slide-content">
One - text.
</div><!--slide-content-->
</div><!--slidedown-->
<div class="slidedown slidedown-two">
<div class="slide-content">
Two - text.
</div><!--slide-content-->
</div><!--slidedown-->
JQuery (примечание: Я использую плагин hoverIntent):
//Hide all slidedown divs
$('.slidedown').hide();
//Find the active class
var activeCl = $('.navvy').children('ul').find('.active').children('a').attr('class').split(' ')[0];
//Slide it down
var downSlide = function() {
activeCl = $(this).attr('class').split(' ')[0];
$('.slidedown-'+activeCl).slideDown(1000);
};
//Slide it up
var upSlide = function() {
activeCl = $(this).attr('class').split(' ')[0];
$('.slidedown-'+activeCl).delay(1000).slideUp(1000);
};
//Slide on hover
var slideHover = function() {
$('.navvy').children('ul').find('li').children('a').hoverIntent({
over: downSlide,
out: upSlide
});
};
slideHover();
Он скользит вверх и вниз в порядке, но мне нужно, чтобы не скользить назад снова, когда мышь находится внутри div, который скользнул вниз.
EDIT: Вот JSFiddle с кодом: http://jsfiddle.net/qeLVU/2/
Вы можете сделать это с небольшой тайм-аут и немного изобретательности, но код кажется довольно неаккуратно и с плагином hoverIntent (я понятия не имею, почему бы нужно) вам Вероятно, вам придется это понять самостоятельно или, по крайней мере, создать скрипку, с которой мы можем играть. – adeneo
Не могли бы вы создать пример jsfiddle, который показывает то же поведение? Я не знаю, какую версию jQuery вы используете. – afaf12
Код не совсем тот же код, который я использую - это часть большого, сложного сайта, и я упростил его здесь. Есть еще несколько lis со ссылками, которые имеют свои собственные связанные slidingowns, и я не хочу, чтобы они сползали повсюду, если кто-то двигал их мышью по всему телу. – Pixel