请参阅小提琴http://jsfiddle.net/rabelais/tw6sdod9/4/
单击“运行”或“刷新”时,页面加载时,“文本”下的子菜单会向上滑动。如何更改此设置,以便我们在页面加载时看不到它,但在使用菜单时保持菜单在其余时间滑动到400?
$(document).ready(function () {
$('li ul').slideDown(0);
$('.no-js li a').on("click", function () {
$('ul#inner-li ul').slideUp(400);
if($(this).siblings('ul').is(":visible"))
$(this).siblings('ul').slideUp(400);
else
$(this).siblings('ul').slideDown(400);
});
jQuery('#texts').click();
});
答案 0 :(得分:1)
$(document).ready(function () {
$('li ul').slideDown(0);
$("#inner-li-texts").hide(0); /* patch here */
$('.no-js li a').on("click", function () {
$('ul#inner-li ul').slideUp(400);
if($(this).siblings('ul').is(":visible"))
$(this).siblings('ul').slideUp(400);
else
$(this).siblings('ul').slideDown(400);
});
//jQuery('#texts').click();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul class="no-js">
<li class="caps"><a href="#">Works</a>
<ul id="inner-li">
<li><a href="blog.html">blog</a></li>
<li><a href="portraits.html">Portraits</a></li>
<li><a href="paintings.html">Paintings</a></li>
<li><a href="drawings.html">Drawings</a></li>
<li><a href="photography.html">Photography</a></li>
</ul></li>
<li class="caps"><a id="texts" href="#">Texts</a>
<ul id="inner-li-texts">
<li><a class="current" href="#essay-one">Essay one</a></li>
<li><a href="#essay-two">Essay two</a></li>
<li><a href="#essay-three">Essay three</a></li>
</ul>
</li>
<li class="caps"><a href="../news.htm">News</a></li>
<li class="caps"><a href="../biography.htm">Biography</a></li>
</ul>
您已使用.click
来触发动画,我只是在文档的开头告诉它隐藏(.hide(0)
)。
答案 1 :(得分:0)
在设置代码之后,您可以调用特定的ul来重新滑动,而不是在设置代码之前触发单击:
$(document).ready(function () {
$('li ul').slideDown(0);
$('#inner-li-texts').slideUp(0);
$('.no-js li a').on("click", function () {
$('ul#inner-li ul').slideUp(400);
if($(this).siblings('ul').is(":visible"))
$(this).siblings('ul').slideUp(400);
else
$(this).siblings('ul').slideDown(400);
});
});