0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

cssでdisplay:none→display:blockに変更されたことをReact側で検出

Last updated at Posted at 2022-07-03

cssでdisplay:none→display:blockに変更されたことをReact側で検出する方法がなかなかわからず、今回はonAnimationEndを使いました。そのときのメモです。

背景

画面サイズがPCサイズ→スマホサイズに変わったときに、メニューをタブからアイコンに切り替えるのを、cssの@mediaだけでやっていました。ただこの場合、スマホサイズに変わったときに何か処理をする場合に、何をトリガにすればいいのかがわからなくなりました。
Windowsのサイズを解析して、、という方法がありそうですが、もっと簡単にやりたかったです。

今回のやりかた

・アイコンに onAnimationEnd=関数 を設定。これをトリガにする
・アイコンがdisplay:blockになったときにダミーのアニメーションを走らせる。0秒で変更するアニメーションとした

css
@media screen and (max-width: 600px) {
  .IconArea {
    display: block;
    animation-name: dummyAnime;
    animation-duration: 0s;
  }
}

@keyframes dummyAnime{
  99% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
ソース
        <div className="IconArea" onAnimationEnd={onMenuIconDisplayed}>
                
        </div>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?