簡體   English   中英

關閉側面菜單后單擊

[英]Close side menu on back click

我正在構建一個Angular應用程序,並在popstate上關閉菜單遇到了一些麻煩。 當側面菜單打開並且用戶單擊其移動設備上的后退按鈕時,我希望菜單關閉菜單,為此,我使用諸如此類的彈出狀態

@HostListener('window:popstate', ['$event'])
  onPopState(event) {
    if (this.isMenuOpened) {
      this.toggleSidebar();
    }
      return ;
  }

Im的問題是后退動作也起作用,因此菜單關閉,但后退動作也發生。 我不能使用history.go(1)因為它會使頁面再次加載,並且我不希望這種行為。

你有什么主意嗎?

根據規范, Popstate無法取消。 但是,您可以嘗試執行此操作

@HostListener('window:popstate', ['$event'])
onPopState(event) {
    if (this.isMenuOpened) {
        event.preventDefault();
        history.go(1); // re-changes the url to what it should be
        this.toggleSidebar();
    }
    return ;
}

嘗試這個 -

 $(window).on( "popstate", function(event){
          if( !event.originalEvent.state ){
          history.pushState( "nohb", null, "" );
          return;
          }
      });

代替history.go(1)使用window.history.forward()

window.history.forward()此函數在第一頁中使用瀏覽器的歷史記錄,並強制其向前瀏覽而不是轉到上一頁。 因此,每次用戶單擊“后退”按鈕,都會導致瀏覽器向前導航或推動用戶並顯示同一頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM