gpt4 book ai didi

javascript - 在没有 jquery 的情况下滚动时更改导航栏内容(Header Sticky on Scroll)?

转载 作者:行者123 更新时间:2023-11-28 14:10:07 25 4
gpt4 key购买 nike

滚动时如何更改导航栏内容?没有jquery

enter image description here

enter image description here

这是我的带 Angular 代码导航栏,但我相信可以使用 vanilla js 来解决这个问题。

<nav class="nav-background">
<div class="nav-wrapper ">
<!-- <a href="#!" class="brand-logo center"><img src="../../../../../assets/icons/icon-96x96.png" alt=""></a> -->
<div class="row valign-wrapper" >
<div class="valign col s2">
<a routerLink="profile"><img class="circle header img-custom" src="{{User.foto}}" *ngIf="User"></a>
</div>
<div class="col s6 content-header">
<div class="col s12 name-header" *ngIf="User">{{User.name}}</div>
<div class="row">
<div class=" nivel-header" *ngIf="User">
{{User.nivel | titlecase}}
</div>
<div class=" stars" *ngIf="User">
<i class="material-icons star star-without-color" [ngClass]="{'star-with-color': checkNivel(1)}">star</i>
<i class="material-icons star star-without-color" [ngClass]="{'star-with-color': checkNivel(2)}">star</i>
<i class="material-icons star star-without-color" [ngClass]="{'star-with-color': checkNivel(3)}">star</i>
<i class="material-icons star star-without-color" [ngClass]="{'star-with-color': checkNivel(4)}">star</i>
<i class="material-icons star star-without-color" [ngClass]="{'star-with-color': checkNivel(5)}">star</i>
</div>
</div>

<div class=" col s12 balance-header"*ngIf="User" >Saldo {{User.saldo_atual}}</div>
</div>
<div class="col s2">
<a routerLink="feed" class="right"><i class="material-icons color-icon-home link dimensao-icone">home</i></a>
</div>
<div class="col s2">
<div materialize="sideNav" [materializeParams]="[options]" data-activates="slide-out" class="hide-on-large-only"><i class="material-icons grey-text dimensao-icon">menu</i></div>
</div>
</div>
</div>

</nav>

我的第二个导航

<nav class="nav-background">
<div class="nav-wrapper">
<div class="row valign-wrapper nav2">
<div class="col s4 espacamento-icone-voltar">
<div materialize="sideNav" [materializeParams]="[options]" data-activates="slide-out" class="hide-on-large-only"><i class="material-icons grey-text dimensao-icone">keyboard_backspace</i></div>
</div>
<div class="col s4 pull-s1">
<a routerLink="feed" class="right"><i class="material-icons cor-icone-home link dimensao-icone">home</i></a>
</div>
<div class="col s4 espacamento-icone-menu">
<div materialize="sideNav" [materializeParams]="[options]" data-activates="slide-out" class="hide-on-large-only"><i class="material-icons grey-text dimensao-icone alinha-direita">menu</i></div>
</div>
</div>
</div>
</nav>

两者都在同一个 html 文件中。

最佳答案

您可以定义一个 bool 变量并根据当前页面的 Y 位置显示一个或另一个标题。

要了解您页面的当前 Y 位置,请尝试以下操作:

import { HostListener, Component, OnInit } from '@angular/core';
import { DOCUMENT } from '@angular/platform-browser';
declare const window: any;

export class YourComponent {

showFullHeader = true;
constructor() {}

@HostListener("window:scroll", [])
onWindowScroll() {

const yPosition = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
if (yPosition > 300) {
showFullHeader = false;
} else {
showFullHeader = true;
}

}
}

关于javascript - 在没有 jquery 的情况下滚动时更改导航栏内容(Header Sticky on Scroll)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56651156/

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