【发布时间】:2012-04-06 09:35:18
【问题描述】:
(大家好)我正在尝试创建一个场景,其中<li> 元素一个接一个地淡入和淡出 - 我可以开始工作了。
当我将鼠标悬停在当前正在制作动画的 <li> 元素上时,我还试图停止动画过程 - 我也可以开始工作。
但是,一旦将 <li> 元素设置为 display:none,我就无法显示它,而我必须等待动画循环播放。
这是我当前的 HTML 标记;
<div id="content">
<li class="one">one</li>
<li class="two">two</li>
<li class="three">three</li>
</div>
但是我想如果我可以将<li> 元素嵌套在我的jQuery 不会隐藏的a 中,那么当我将鼠标悬停在<div> 上时,我可以将<li> 元素设置回display:block。
建议的标记;
<div id="content">
<div class="wrap"><li class="one">one</li></div>
<div class="wrap"><li class="two">two</li></div>
<div class="wrap"><li class="three">three</li></div>
</div>
但是,使用下面粘贴的我的 jQuery,您可以看到它只处理 <li> 元素,如果它们是 #content 的兄弟元素,而不是嵌套的元素。
jQuery(document).ready(function($) {
$('#content li').hide();
InOut($('#content li:first'));
function InOut(elem) {
elem.delay().fadeIn(1500).delay(5000).fadeOut(1500, function() {
if (elem.next().length > 0) {
InOut($(this).next());
}
else {
InOut($(this).siblings(':first'));
}
});
}
$('#content li').mouseover(function() {
$(this).fadeIn(500).stop(true, true);
});
$('#content li').mouseout(function() {
if ($(this).is(":visible") == true) {
InOut($(this));
}
});
});
为了举例,我在下面按顺序创建了当前动画的 Fiddle;
http://jsfiddle.net/pusher/TuGES/1/
我们总是感谢任何帮助。
谢谢!
【问题讨论】:
标签: jquery