Я ищу простой способ отображения другого заголовка при прокрутке обычного заголовка. Я искал много решений, но все они связаны с длинным кодом ..
Итак, вот решение, которое я нашел, но оно не работает, так как y не реализует себя ..
Вот TypeScript
import { Component, OnInit, HostListener } from '@angular/core';`
...
export class HeaderComponent implements OnInit{
y = window.scrollY;
myID = document.getElementById("header");
myID2 = document.getElementById("header2");
ngOnInit() {
this.myScrollFunc();
window.addEventListener("scroll", this.myScrollFunc);
}
myScrollFunc() {
if (this.y >= 150) {
this.myID2.className = "bottomMenu hide"
this.myID.className = "bottomMenu show"
} else {
this.myID2.className = "bottomMenu show"
this.myID.className = "bottomMenu hide"
}
};
}
HTML
<div id="header" class="bottomMenu show"> ... </div>
<div id="header2" class="bottomMenu hide"> ... </div>
И .css
.hide {
opacity: 0;
left: -100%;
}
.show {
opacity: 1;
left: 0;
}
Это, очевидно, должно работать и выглядит просто, но это нене работает для меня ..
РЕДАКТИРОВАТЬ: Если у вас есть более простой способ, я также открыт, решение не в основном исправить это.
РЕДАКТИРОВАТЬ 2: Все еще нет ответа,если у кого-то есть идея, или если есть более простое решение, например if (position! = 0) {y = 1} else {y = 0} и я бы добавил y в некоторый ngIf в HTML ...?
РЕДАКТИРОВАТЬ 3: Я наконец нашел решение, вот мой код, если у кого-то есть такая же проблема:
HTML
<div id="header" *ngIf="scrolled == 0"> ... </div>
<div id="header2" *ngIf="scrolled == 1"> ... </div>
TypeScript
export class HeaderComponent implements OnInit{
scrolled = 0;
@HostListener('window:scroll', ['$event'])
onWindowScroll($event) {
const numb = window.scrollY;
if (numb >= 50){
this.scrolled = 1;
}
else {
this.scrolled = 0;
}
}
}
Проще, чем длинный слушатель
Большое спасибо за вашу помощь заранее!