gpt4 book ai didi

javascript - 滚动时 Angular 5 粘性菜单

转载 作者:太空宇宙 更新时间:2023-11-04 07:18:01 25 4
gpt4 key购买 nike

当菜单到达页面顶部时,我会将菜单位置更改为固定。以下是我的处理方式。

import { Component, OnInit, Inject, HostListener } from '@angular/core';
import {Location} from '@angular/common';
import { DOCUMENT } from "@angular/platform-browser";
....
export class DashboardComponent implements OnInit {
constructor(private _location: Location, @Inject(DOCUMENT) private doc: Document) { }
public fixed: boolean = false;
@HostListener("window:scroll", [])
onWindowScroll() {
let num = this.doc.body.scrollTop;
console.log("scroll top" , this.doc.body.scrollTop)
if ( num > 50 ) {
this.fixed = true;
}else if (this.fixed && num < 5) {
this.fixed = false;
}
}

HTML

<div [class.menus]="fixed">
<div class="left-menu ">
<app-left-menu></app-left-menu>
</div>
<div class="second-menu" >
<app-second-menu (display)="onDisplay($event)" [expanded]=expanded ></app-second-menu>
</div>
</div>

CSS

.menus{
position: fixed;
}

问题scrollTop 没有改变。当我执行 console.log(this.doc.body.scrollTop) 并滚动时,值为 0 并且不会更改。

最佳答案

很可能主体不是滚动容器,HTML 元素是

试试 document.documentElement.scrollTop

在浏览器中,document.documentElement 是对根 HTML 元素的引用

关于javascript - 滚动时 Angular 5 粘性菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50563797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com