Jquery - 点击检查 li 项是否有 display:none 然后淡入,否则淡出
Jquery - on click check if li item has display:none and then fade it in, else fade it Out
请指教。我正在使用 jQuery。我是初学者。我想用 fadeIn (onclick) 显示项目,然后在第二次单击时用 fadeOut 隐藏它们。我的代码有什么问题?延迟很重要。
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;
}
$(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>
更好的方法是使用 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 文档的link。
为此目的使用 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()
我已经解决了这个问题。实际上,您从以下 select 或:
中漏掉了点 .
$("sub-menu li");
将以上内容改为:
$(".sub-menu li");
当使用 class 对某些元素进行 select 时,在 class 名称之前使用点 select。请参阅以下 fiddle..它工作正常。
$(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>
请指教。我正在使用 jQuery。我是初学者。我想用 fadeIn (onclick) 显示项目,然后在第二次单击时用 fadeOut 隐藏它们。我的代码有什么问题?延迟很重要。
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;
}
$(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>
更好的方法是使用 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 文档的link。
为此目的使用 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()
我已经解决了这个问题。实际上,您从以下 select 或:
中漏掉了点 . $("sub-menu li");
将以上内容改为:
$(".sub-menu li");
当使用 class 对某些元素进行 select 时,在 class 名称之前使用点 select。请参阅以下 fiddle..它工作正常。
$(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>