滚动事件侦听器:空While循环,它如何工作以及为什么?

时间:2019-04-18 15:55:03

标签: javascript

这个问题是关于this post

总而言之,要求是在导航中具有链接以根据当前滚动位置更改状态,我能够使此处显示的代码正常工作,但是我不明白为什么这样做这种方式是

writer = pd.ExcelWriter('file.xlsx', engine='xlsxwriter') for k in l: with udaExec.connect(method="odbc",system=host, username=username,password=password, driver="Teradata") as connect: QP = pd.read_sql_query(k,connect) with udaExec.connect(method="odbc",system=host1, username=username1,password=password1, driver="Teradata") as connect: QD= pd.read_sql_query(k,connect) Final_result = pd.merge(QP,QD,on='ID', how='outer', indicator = True) cnt = cnt+1 sh = f'''she_{cnt}''' print(sh) Final_result.to_excel(writer, sheet_name = sh) writer.save()

我会对原始的答案发表评论,但是显然,我的声誉还不够。

这是整个JavaScript代码

while(--index && window.scrollY + 50 < sections[index].offsetTop) {}

所以我的问题是:

  1. 为什么需要while循环,并且由于它为空,所以它什么都不做吗?
  2. 我尝试删除while循环,但最终破坏了代码

谢谢!

1 个答案:

答案 0 :(得分:0)

while(--index && window.scrollY + 50 < sections[index].offsetTop) {}

这会随着每次发声减少索引。当[window.scrollY + 50

稍后用于更新链接[index] .classList.add('active');

它也可能是这样写的:

while (index >= 0 && window.scrollY + 50 < sections[index].offsetTop) {
    index--
}

需要检查索引是否具有足够的值(也就是不等于-1或更低),否则,由于第[-1]节的要求,索引会在到达[-1]时出错。

>