我有一个图像列表,我希望淡出然后在用户点击列表中的链接后淡入。出于某种原因,当我点击列表中的链接时,该项目将淡入,但在它完成淡入之前它会淡出并快速返回!
$(document).ready(function(){
$('.service-link').click(function(){ return switch_service(this); });
});
function switch_service( link ) {
var slug = $(link).attr('href');
$('.active').removeClass('active');
$(link).addClass('active');
$('.service-li:visible').fadeOut( 300, function(){
$(slug).fadeIn( 300 );
} );
return false;
}
HTML看起来像这样:
<ul id="services-info">
<li class="service-li" id="slug-1"><img src="..." /></li>
<li class="service-li" id="slug-2"><img src="..." /></li>
<li class="service-li" id="slug-3"><img src="..." /></li>
<li class="give-height"></li>
</ul>
<ul id="services-list">
<li><a class="service-link" href="#slug-1">Test 1</a></li>
<li><a class="service-link" href="#slug-2">Test 2</a></li>
<li><a class="service-link" href="#slug-3">Test 3</a></li>
</ul>
我不确定有什么不同。我以前做过这种事并且没有问题。有时功能可能会因为项目之间的快速点击而变得有点不稳定,但这次每次都会发生这种情况(在FF和Chrome中进行测试)。
编辑:好的,所以我通过添加额外的ID和一个带有类的空列表项来使我的示例更加忠实于我的页面上运行的内容,以保持我的ul隐藏元素不会崩溃。我最初没有发布我的CSS,因为我没有想到它可能是问题,这里是:
#services-list,
#services-info {
margin: 0px;
padding: 0px;
display: block;
width: 465px;
float: left;
list-style-type: none;
font-size: 21px;
line-height: 40px;
height: 100%;
position: relative;
}
#services-list:after,
#services-info:after {
content: "";
display: block;
clear: both;
}
#services-info > li {
text-align: center;
position: absolute;
}
#services-list {
padding-left: 50px;
color: #cacaca;
}
#services-list a {
color: #cacaca;
}
#services-list a.active {
color: #bed545;
}
#services-info .give-height {
display: block;
min-height: 30px;
}
#services-info > li {
display: none;
text-align:center;
vertical-align: middle;
height: 100%;
position: relative;
}
为了准确显示正在发生的事情,这里是testing link,但是一旦这个问题得到解答我就会删除它(对于将来可能遇到这个问题的人抱歉,希望我能够很好地描述问题为此仍然有用)