WebDesigner's Memorandumウェブデザイナーの備忘録

サイト表示時にTransitionでホバーアニメーションが実行されてしまう場合の対処法

transitionプロパティを使用してサイト上のアニメーションを作成していると、たまにGoogle Chromeで画面読み込み時に意図せずアニメーションが発生してしまう時があります。

発生した症状

読み込み時にtransitionでアニメーションしながら、最終的に目的の形になっていきます。
非常に気になるので、解決策を探してみたところこちらの記事にたどり着きました。

transitionをnoneにするclassを<body>タグへ付けておいて、読み込みが完了したらそのclassを外す。という方法です。

解決方法(jQuery)

コードは参考記事のままになってしまいますが、jQueryを使っている(使える)状態であれば下記のコードで解決されます。

HTML<body class="preload">
CSS.preload * {
-webkit-transition: none !important;
-moz-transition: none !important;
-ms-transition: none !important;
-o-transition: none !important;
transition: none !important;
}
jQuery$(window).load(function() {
$("body").removeClass("preload");
});

解決方法(JavaScript)

まっさらなJavaScriptで解決したい場合は下記のコードで解決します(HTMLとCSSは上記のjQueryと全く同じ)。

JavaScriptwindow.onload = function(){
const preload = document.getElementsByClassName('preload');
preload[0].classList.remove('preload');
}

transitionを使用するサイトでは、とりあえずこのコードを付けておきたいですね。

著者について

プロフィール画像

@31mskz10

1997年生まれ。2016年から専門学校でデザインを学び、卒業後は神戸の制作会社でWeb制作に従事しています。Webrandumは2016年から運営し、ウェブデザイン、フロントエンド開発、WordPress、CSS、JavaScript、制作環境の効率化を中心に、実際に試した内容を執筆しています。

Twitterをフォロー Facebookでいいね