为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript滚动事件添加类

Javascript滚动事件添加类

慕虎7371278 2021-10-21 10:51:13
大家好,我有滚动事件的问题:当该部分在视口中(可见)时,我想向某个链接添加一个类,但问题是如果我的滚动位置在selected range(中if statement)之间,一切正常,class添加到link. 但是,如果我不断滚动到下一部分,则会无限添加该类。我如何只能在if statement为 true 时添加它(滚动位置在 之间selected range)?// Element position  const attractionSectionPos = Math.floor(ui.attractions_section.getBoundingClientRect().top);// For intro section  if(attractionSectionPos <= 250 && attractionSectionPos >= -450) {    // Remove the active link if we have more than one    document.querySelectorAll('.active').forEach(link => link.classList.remove('active'));                    // Add the class when section is in viewport    document.querySelector('[data-link="attractions"]').classList.add('active');    // Prevent default so we only add the class once    e.preventDefault();  // Remove the class if section is not in viewport  } else { document.querySelector('[data-link="attractions"]').classList.remove('active') }如果我添加e.preventDefault()它会给我一堆错误。例如: Uncaught TypeError: e.preventDefault is not a function
查看完整描述

1 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

我添加if statement了以下内容:

!document.querySelector('[data-link="attractions"]').classList.contains('active')

现在一切正常,顺利,并增加了class只有一次,当sectionviewport


查看完整回答
反对 回复 2021-10-21
  • 1 回答
  • 0 关注
  • 292 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信