我尝试使用HostListener跟踪滚动位置以更改标题的颜色。
我的标头组件如下,
import { Component, OnInit, Input, HostListener, Inject } from '@angular/core';
import { DOCUMENT } from '@angular/common';
@Component({
selector: 'app-header',
templateUrl: './header.component.html',
styleUrls: ['./header.component.scss']
})
export class HeaderComponent implements OnInit {
constructor(@Inject(DOCUMENT) private document: Document) { }
ngOnInit() {
}
@HostListener('window:scroll', [])
onWindowScroll() {
console.log(window.scrollY);
}
}
但是当我滚动时,控制台中没有任何日志。
我试图将HostListener放在主app.component中,因为我的标头组件已固定,但是我仍然没有结果,也没有错误。
谢谢
答案 0 :(得分:3)
这是因为styles.scss中的全局样式
从styles.scss中将高度更改为最小高度
html, body {
height: 100%;
}
对此
html, body {
min-height: 100%;
}
这对我有用,希望对您有所帮助!
答案 1 :(得分:1)
在您正在使用的组件的.ts文件中:
import {Component, OnInit, HostListener, Inject} from '@angular/core';
import {DOCUMENT} from "@angular/common";
...
constructor(
@Inject(DOCUMENT) private document: Document
)
... after ngOnIt {}:
@HostListener('window:scroll', [])
onWindowScroll() {
console.log(window.scrollY);
}
确保文件足够长,并且向下滚动视口时应该在控制台中看到整数。
答案 2 :(得分:0)
请参考this链接来解决您的问题。希望这可以帮助! 谢谢。