嵌套setIntervals出现问题

时间:2018-07-01 14:45:03

标签: javascript

好吧,这就是事情:我有点时间紧迫。我原本打算在2天前建立这个网站,但是事情并没有按计划进行,现在我正试图暂时将这个小知识弄混。

话虽这么说,但我遇到了一个setInterval问题,这对我来说根本没有道理。但是,在此之前,我将解释我要实现的目标:我试图使该网站的移动版本“分页”各个部分,并从加载的导航菜单访问“页面”排序,并因此显示替代导航,该导航将更多地充当轮播控制器。

因此,在setInterval中,主导航淡出,同时alt-nav淡入,然后然后单击的“页面”从右侧滑入。这是我的代码:

function fadeNav() {
  if(f > 0.05) {
    f = f - 0.1;
    n = 1 - f; 
    nav.style.opacity = f;
    header.style.opacity = f;
    logo.style.opacity = f;
    miniNav.style.opacity = n;
  } else {
    nav.style.display = "none";
    clearInterval(fade);
    sectionsMed[where].style = "display:block; position:absolute; top:0; transform: translateX(100%)";
    o = 100;
    movePage = setInterval(function() {
      if(o > 0.1) {
        o = o - (o * 0.11);
        if(o < 50) {
          o = o - (o * 0.05);
        }
        sectionsMed[where].style.transform = "translateX(" + o + "%)";
      } else {
        sectionsMed[where].style.transform = "";
        clearInterval(movePage);
      }
    }, 30);
  }
}

function goToPage() {
  where = this.getAttribute('data-index');
  miniNav.style = "display:block; opacity:0;";
  f = 1;
  n = 0;
  fade = setInterval(fadeNav, 30);
}

for(l = 0; l < links.length; l++) {
  links[l].setAttribute('data-index', l);
  links[l].addEventListener('click', goToPage);
}

我希望这足以使您成为帮助我的老师。无论如何,所有这些实际上都在解决一个非常奇怪的问题:似乎在最初的setInterval之后,随后的一个在文档中添加了一个全新的部分,或其他内容……即在所有情况下单击{{ 1}}(奇怪的是,第一个除外)。alt-nav元素出现在一个看不见的,从未创建的元素的底部,该元素将自身构造在我要显示的内容之下,并且滚动以找到它,这是不应该发生的,因为我有每个元素links[l] mini-nav height calc(100vh -以及每个 other 元素)

我希望我对此问题的匆忙解释能通过...帮助?拜托?!?

0 个答案:

没有答案