Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我的卷轴事件触发得这么慢?Javascript,角度_Javascript_Css_Angular - Fatal编程技术网

为什么我的卷轴事件触发得这么慢?Javascript,角度

为什么我的卷轴事件触发得这么慢?Javascript,角度,javascript,css,angular,Javascript,Css,Angular,我正在写一个非常基本的标题,当用户滚动时,它将固定在页面顶部。这是一个很难调试的问题,因为大多数人都有与我所经历的相反的问题。我的代码正在运行;然而,在应用的类中有一个显著的延迟。这是我的密码: CSS: JS: } 这个代码在技术上是有效的。当我滚动时,事件触发,类被添加,标题被“卡住”,但是滚动事件只在用户停止滚动后才会触发,然后实际添加类还需要一两秒钟的时间。最近还有其他人有这个问题吗?顺便说一句,我是在Chrome上开发的。但是我在其他浏览器中测试了这个问题,得到了相同的结果。您知道,使

我正在写一个非常基本的标题,当用户滚动时,它将固定在页面顶部。这是一个很难调试的问题,因为大多数人都有与我所经历的相反的问题。我的代码正在运行;然而,在应用的类中有一个显著的延迟。这是我的密码:

CSS:

JS:

}


这个代码在技术上是有效的。当我滚动时,事件触发,类被添加,标题被“卡住”,但是滚动事件只在用户停止滚动后才会触发,然后实际添加类还需要一两秒钟的时间。最近还有其他人有这个问题吗?顺便说一句,我是在Chrome上开发的。但是我在其他浏览器中测试了这个问题,得到了相同的结果。

您知道,使用Angular时不应该直接访问dom。只是一个优化提示:不要在handleScroll回调中执行头选择器。。。现在它必须每秒执行该操作数十次。@Ploppy你的意思是我应该使用@ViewChild吗?是的,这就是我的意思
.sticky { 
         position: fixed;
         top: 10px; 
         left: 0px;
         right: 0px;
}
@HostListener('window:scroll') onScroll() {
this.handleScroll();
};

...

handleScroll() {
const header = document.getElementById('stickyBumper');
const distanceToTop = window.scrollY;




if (distanceToTop > 200) {
  if (!header.classList.contains('sticky')) {
    header.classList.add('sticky');
  }
} else {
  header.classList.remove('sticky');
}