我是jQuery新手,遇到了一个问题。当我想使用多个方法彼此相邻的代码将无法工作。下面是代码:
$("document").ready(function() {
$("#button1").click(function() {
$("#home").fadeTo(1000, 0.5).delay(1800).fadeIn(500);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<img src="img.png" alt="list image" id="menu">
<br/>
<nav>
<ul>
<li id="home"><a href="#">Home</a></li>
<li id="contact"><a href="#">Contact</a></li>
<li id="about"><a href="#">About</a></li>
</ul>
</nav>
<br/>
<button id="button1">Button1</button>
我已经将延迟从800更改为1800,因为我认为延迟将在点击时开始。也因为.fadeTo
的速度是1000毫秒。但不幸的是,它没有起作用。之后我重写了代码。
$("document").ready(function(){
$("#button1").click(function(){
$("#home").fadeTo(1000,0.5,function(){
$(this).delay(800).fadeIn(1000,1.0);
});
});
});
这个也不起作用。最后我把.fadeIn
换成了.fadeTo
。那工作!所以现在,因为这个,我有几个问题我不能回答。
- 为什么
$("#home").fadeTo(1000,0.5).delay(1800).fadeIn(500);
不工作? - 为什么
.fadeIn
起作用而.fadeTo
不起作用?
问题与链接无关,正如您在使用补全函数时所发现的那样。
我认为问题是,fadeIn()
不做任何事情,如果元素不隐藏;如果元素具有部分不透明度,则会产生效果。将其更改为fadeTo(500, 1.0)
,它可以工作。
据我所知,这在文档中没有明确说明。我不确定这是否应该被视为fadeIn()
中的错误或文档错误。
$("document").ready(function() {
$("#button1").click(function() {
$("#home").fadeTo(1000, 0.5).delay(1800).fadeTo(500, 1.0);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<img src="img.png" alt="list image" id="menu">
<br/>
<nav>
<ul>
<li id="home"><a href="#">Home</a></li>
<li id="contact"><a href="#">Contact</a></li>
<li id="about"><a href="#">About</a></li>
</ul>
</nav>
<br/>
<button id="button1">Button1</button>