html - 如何使用 Angular Material 创建粘性 header ?

标签 html css angular angular-material

我想显示粘性标题。在滚动时 header1 应该被隐藏,header2 应该显示,我如何使用 ma​​terial 实现这个?

这是我的预期 DEMO

提前致谢

最佳答案

无论您是否使用 Angular Material,粘性标题的基本实现都是相同的 - 观察页面的滚动位置并根据需要隐藏或显示第二个标题。这是一个使用 Angular Material 工具栏组件作为标题的粗略示例:

<div style="min-height: 150vh;"> <!-- Set minimum height to force a scrollbar -->
    <mat-toolbar color="primary">
        <mat-toolbar-row>
            <span>Header 1</span>
        </mat-toolbar-row>
    </mat-toolbar>

    <mat-toolbar color="secondary" style="position: fixed; top: 0;" *ngIf="scrolled">
        <mat-toolbar-row>
            <span>Header 2</span>
        </mat-toolbar-row>
    </mat-toolbar>
</div>

在 .ts 文件中:

scrolled: false;

@HostListener('window:scroll', [])
onWindowScroll() {
    // Depending on the desired effect, you should probably only show the second header
    // if you've scrolled past the first header's height
    this.scrolled = window.pageYOffset > 48;
}

关于html - 如何使用 Angular Material 创建粘性 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54033364/

相关文章:

html - 用户从 HTML 编辑器输入的响应字体大小

javascript - 无法将数据从 firebase 实时数据库检索到网络应用程序

html - 为什么我的移动网站没有居中对齐?

html - 是否可以以正确的比例渲染两种尺寸的图像

jquery - 使用 Form 定位 Iframe 会导致打开新窗口

html - 使图像适合屏幕以避免滚动

html - 将一个 CSS 类的样式包含到另一个

以编程方式使用 Angular 7 CLI

angular - 编辑表单 this.form.dirty 始终为 true 如何在 Angular 6 中处理

angular - 升级到 Angular 9 后,编译时间大幅增加