BLOG

ブログ

  • Web制作

ブラウザの「戻る」ボタンで戻ると一瞬ドロワーメニューが表示されてしまう問題

ブラウザの「戻る」ボタンで戻ると一瞬ドロワーメニューが表示されてしまう問題

こんにちは。

iMac 27 インチの新型を待ってたんですが発売されないみたいですね。

Apple 的には Mac StudioとStudio Display を買ってくれということみたいです。

60万円コースですよ。。。

どうしようかなと悩んでます。

さてと、本題に入ります。

スマホサイトでよく使われるドロワーメニュー。

ハンバーガーボタンをタップすると画面の右端からにゅるっと出てくる仕様が多いですよね。

仕組みはドロワーメニューを

.drawer-menu{
    transform: translate(-300px)
}

上記のように css の transform で隠しておいて、ハンバーガーメニューをタップした時に、ドロワーメニューに「open」等のクラスを追加。

クラスが追加されたら

.drawer-menu.open{
    transform: translate(0)
}

上記のように css を上書きしてドロワメニューを表示させるというような仕組みが多いと思います。

この仕組みのドロワーメニューの問題点として、ブラウザの「戻る」ボタンでページを前ページに戻ると、一瞬ドロワーメニューが表示されてしまうことがあります。

この場合 transform を使わずに、

.drawer-menu{
    right:-300px;
}
.drawer-menu.open{
    right:0;
}


上記のように position を使ってやると解決します。

transform は便利ですが、状況によって使い分けが必要ですね。