問題発生
状態:-
閲覧数:2,194
投稿日:2017-10-30
更新日:2017-10-30
「既存JSライブラリ」をカスタマイズした「レスポンシブ画像スライドショー」
・スマホ実機で確認すると、アニメーション終了時に一瞬だけ画面がチラつく
・パソコン画面でChromeをモバイル表示しても、この現象を再現出来ない
・スマホ実機で確認する際にだけ発生
JSを疑う
・Modernizrを最新バージョンへ差し替え
→ 効果なし
・imagesloadedを最新バージョンへ差し替え
→ 効果なし
・alertデバッグ
→ 効果なし
・ここまで試して、どうやらJSは「無実の罪」だったらしきことが判明
CSSを疑う
・transform内容をまとめて指定しているとそれだけで負荷がかかるのかチラツキが消えない
→ バラして指定するも効果なし
・スマホ実機で確認すると、アニメーション終了時に一瞬だけ画面がチラつく
・パソコン画面でChromeをモバイル表示しても、この現象を再現出来ない
・スマホ実機で確認する際にだけ発生
徒労に終わった対応
JSを疑う
・Modernizrを最新バージョンへ差し替え
→ 効果なし
・imagesloadedを最新バージョンへ差し替え
→ 効果なし
・alertデバッグ
→ 効果なし
・ここまで試して、どうやらJSは「無実の罪」だったらしきことが判明
CSSを疑う
・transform内容をまとめて指定しているとそれだけで負荷がかかるのかチラツキが消えない
→ バラして指定するも効果なし
最終的に解決した方法 → 「backface-visibility:hidden;」指定
最終的に解決した方法
該当CSSに「backface-visibility:hidden;」指定
-webkit-backface-visibility:hidden;
backface-visibility:hidden;
解決に要した日数
・3日間
遭遇例
修正前
.slideshow ul.animatable li {
-webkit-transition: -webkit-transform 0.5s;
transition: transform 0.5s;
}
修正後
.slideshow ul.animatable li {
-webkit-transition: -webkit-transform 0.5s;
transition: transform 0.5s;
-webkit-backface-visibility:hidden;
backface-visibility:hidden;
}
「backface-visibility:hidden;」指定すると、チラつきが解消される理由
不明
・CSS Transformsで画面がちらつくときの対処法