请建议。我正在使用jQuery。我是乞eg。我想用Fadein(OnClick)展示项目,然后在第二次单击时以淡入淡出。我的代码怎么了?延迟很重要。
javaScript:
$(document).ready(function(){
$("#btn").click(function(){
if ($("sub-menu li").css('display') == 'none') {
$("#navbar li").each(function(i) {
$(this).delay(100 * i).fadeIn(500);
});
} else {
$("#navbar li").each(function(i) {
$(this).delay(100 * i).fadeOut(500);
});
}
});
});
标记:
<button id="btn">CLICK ME</button>
<div class="sub-menu" id="dropDownMenu">
<ul id="navbar">
<li>ONE</li>
<li>TWO</li>
<li>THREE</li>
<li>FOUR</li>
<li>FIVE</li>
</ul>
</div>
CSS:
.sub-menu {
position: absolute;
z-index: 1000;
}
.sub-menu li {
display: none;
}
在这里工作小提琴
一个更好的aprouch是通过 fadeToggle
函数,它像这样
$(document).ready(function(){
$("#btn").click(function(){
$("#navbar li").each(function(i) {
$(this).delay(100 * i).fadeToggle(500);
});
});
});
.sub-menu {
position: absolute;
z-index: 1000;
}
.sub-menu li {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btn">CLICK ME</button>
<div class="sub-menu" id="dropDownMenu">
<ul id="navbar">
<li>ONE</li>
<li>TWO</li>
<li>THREE</li>
<li>FOUR</li>
<li>FIVE</li>
</ul>
</div>
尝试这个,
$(document).ready(function(){
$("#btn").click(function(){
$(".sub-menu").fadeToggle( "slow", "linear" );
});
});
.sub-menu {
position: absolute;
z-index: 1000;
}
.sub-menu {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btn">CLICK ME</button>
<div class="sub-menu" id="dropDownMenu">
<ul id="navbar">
<li>ONE</li>
<li>TWO</li>
<li>THREE</li>
<li>FOUR</li>
<li>FIVE</li>
</ul>
</div>
这是Fadetoggle文档的链接。
为此目的使用fadetoggle。
$("#btn").click(function(){
$('#navbar li').fadeToggle(1000); // Yourr calculation for toggle.
});
.sub-menu {
position: absolute;
z-index: 1000;
}
.sub-menu li {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btn">CLICK ME</button>
<div class="sub-menu" id="dropDownMenu">
<ul id="navbar">
<li>ONE</li>
<li>TWO</li>
<li>THREE</li>
<li>FOUR</li>
<li>FIVE</li>
</ul>
</div>
$(document).ready(function() {
$("#btn").click(function() {
$("#navbar li").toggle("slow")
});
});
.sub-menu {
position: absolute;
z-index: 1000;
}
.sub-menu li {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btn">CLICK ME</button>
<div class="sub-menu" id="dropDownMenu">
<ul id="navbar">
<li>ONE</li>
<li>TWO</li>
<li>THREE</li>
<li>FOUR</li>
<li>FIVE</li>
</ul>
</div>
使用.toggle()
$(document).ready(function() {
$("#btn").click(function() {
if ($(".sub-menu li").css('display') == 'none') //. was missing here
{
$("#navbar li").each(function(i) {
$(this).delay(100 * i).fadeIn(500);
});
} else {
$("#navbar li").each(function(i) {
$(this).delay(100 * i).fadeOut(500);
});
}
});
});
.sub-menu {
position: absolute;
z-index: 1000;
}
.sub-menu li {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="btn">CLICK ME</button>
<div class="sub-menu" id="dropDownMenu">
<ul id="navbar">
<li>ONE</li>
<li>TWO</li>
<li>THREE</li>
<li>FOUR</li>
<li>FIVE</li>
</ul>
</div>
我已经解决了问题。实际上,您从以下选择器中错过了点。:
$("sub-menu li");
将上述更改为:
$(".sub-menu li");
使用类选择一些元素时,请使用DOT在类名称之前选择该元素。请参阅以下小提琴..它的工作正常。
$(document).ready(function(){
$("#btn").click(function(){
if ($(".sub-menu li").css('display') == 'none') {
$("#navbar li").each(function(i) {
$(this).delay(100 * i).fadeIn(500);
});
} else {
$("#navbar li").each(function(i) {
$(this).delay(100 * i).fadeOut(500);
});
}
});
});
.sub-menu {
position: absolute;
z-index: 1000;
}
.sub-menu li {
display: none;
}
<button id="btn">CLICK ME</button>
<div class="sub-menu" id="dropDownMenu">
<ul id="navbar">
<li>ONE</li>
<li>TWO</li>
<li>THREE</li>
<li>FOUR</li>
<li>FIVE</li>
</ul>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>