Javascript 为什么要使用&燃气轮机=&引用;在以下示例中不起作用为什么我们必须使用-1“;相反
所以我只是在学习和实践Javascript以及Javascript库。在本例中,我使用JQuery。这个例子只是一个简单的引号旋转器(你想叫它什么就换什么)。代码运行良好。我的问题是匿名函数中的if语句(在fadeOut方法中)。if语句中的参数为:Javascript 为什么要使用&燃气轮机=&引用;在以下示例中不起作用为什么我们必须使用-1“;相反,javascript,jquery,Javascript,Jquery,所以我只是在学习和实践Javascript以及Javascript库。在本例中,我使用JQuery。这个例子只是一个简单的引号旋转器(你想叫它什么就换什么)。代码运行良好。我的问题是匿名函数中的if语句(在fadeOut方法中)。if语句中的参数为: currentQuote == allQuotes.length - 1 为什么要这样写而不是 currentQuote >= allQuotes.length 使用大于或等于不应该以完全相同的方式工作吗?如果没有,为什么没有?整个代码如
currentQuote == allQuotes.length - 1
为什么要这样写而不是
currentQuote >= allQuotes.length
使用大于或等于不应该以完全相同的方式工作吗?如果没有,为什么没有?整个代码如下
//HTML
<body>
<div class="quote-holder">
<blockquote>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
</blockquote>
<blockquote>
Ut enim ad minim veniam, quis nostrud exercitation ullamco
</blockquote>
<blockquote>
Duis aute irure dolor in reprehenderit in voluptate velit esse
</blockquote>
</div>
</body>
//javascript Jquery
let allQuotes = $("blockquote");
let currentQuote = 0;
function changeQuote(){
$(allQuotes[currentQuote]).fadeOut(200, function(){if(currentQuote == allQuotes.length - 1){
currentQuote = 0;
}else {
currentQuote++;
}
$(allQuotes[currentQuote]).fadeIn(200)});
}
let quoteTimer = setInterval(changeQuote, 3000)
因为每当阵列位置到达末端时,循环需要重置。否则,它将始终显示第一个位置 如果数组长度为5。位置为[0]、[1]、[2]、[3]、[4],因此4是最后一个元素,即:
array.length-1.
在问题函数中,您需要将位置设置为0,以便引号循环保持旋转。我用注释一步一步地解释了更多内容
let allQuotes=$(“blockquote”);
设currentQuote=0;
函数changeQuote(){
$(allQuotes[currentQuote]).fadeOut(200,function(){
if(currentQuote==allQuotes.length-1){//if最后一个位置
currentQuote=0;//重置
}else{//else
currentQuote++;//下一步
}
$(allQuotes[currentQuote]).fadeIn(200)});
}
让quoteTimer=setInterval(changeQuote,3000)
。报价持有人{
宽度:30%;
}
大宗报价{
显示:无;
}
blockquote:类型的第一个{
显示:块;
}
你好
你好吗?
很好,谢谢
我想你需要加一些括号<代码>当前报价==(allQuotes.length-1)currentQuote>=allQuotes.length
如果currentQuote=allQuotes.length-1
其中currentQuote==allQuotes.length-1
的计算结果为true。currentQuote==allQuotes.length-1
表示currentQuote
小于allQuotes.length
currentQuote>=allQuotes.length
表示currentQuote
大于或等于allQuotes.length
。不能同时大于和小于。@Obsidiage:Uhm。否。currentQuote==allQuotes.length-1
表示currentQuote
比allQuotes.length小一个。考虑到你其余评论的上下文,这是一个重要的区别。
let allQuotes = $("blockquote");
let currentQuote = 0;
function changeQuote(){
$(allQuotes[currentQuote]).fadeOut(200, function(){if(currentQuote == allQuotes.length - 1){
currentQuote = 0;
}else {
currentQuote++;
}
$(allQuotes[currentQuote]).fadeIn(200)});
}
let quoteTimer = setInterval(changeQuote, 3000)