>  > 19インチ サマータイヤ セット【適応車種:スカイラインクロスオーバー(J50系)】WEDS レオニス FY パールブラックミラーカット 8.0Jx19Bluearth RV-02 245/45R19
TOYOTIRES トーヨー プロクセス T1 スポーツ SUV PROXES サマータイヤ 265/45R20 BLEST Eurosport Type805 ホイールセット 4本 20インチ 20 X 8.5 +45 5穴 114.3
フリーランスITエンジニア向けの案件・求人・仕事サイト
BOLD WORLD エアサスペンション REVOLUTION GLITTER VERSION SOFT DOWN for WAGON ヴィッツ NCP91 エアサス ボルドワールド
こんにちは!アン・コンサルティング株式会社のエンジニア阿部です!

いつもフリエンのコラムをご覧になっていただき、ありがとうございます!
今回は、HTMLとCSSでレイアウト作っていく際に起こった「画面遷移時のちらつき」について書いていこうと思います!

豊富な案件の中から希望の案件をご紹介!

未公開案件も多数ありますので「まずは相談したい。」という方もお気軽に登録ください。 【目次】
開発環境
起こったこと
原因
解決方法
その他の注意点
まとめ

19インチ サマータイヤ セット【適応車種:スカイラインクロスオーバー(J50系)】WEDS レオニス FY パールブラックミラーカット 8.0Jx19Bluearth 【送料無料】 RV-02 245/45R19 18インチカムリ50系ENKEI

・Ruby 2.4.1
・Rails 5.1.5
・foundation-rails 6.4.3.0
・slim-rails 3.1.3

 起こったこと

※画面遷移時に上記のようなちらつきが起こる

詳細はお見せできないのですが、上記は、ヘッダー部分の画像です。
一瞬ですが、ヘッダーの文字等がずれていることがおわかりでしょうか?
これは 【送料無料 VW(ゴルフ)】 195/65R15 15インチ TECMAG TYPE 211R 6J 6.00-15 YOKOHAMA ブルーアース A(AE50Z) SALE サマータイヤ ホイール4本セット 輸入車【YOsum18】 ROWEN ロウェン ヴェルファイア 30系 AGH3#W GGH3#W AYH30W 後期 Zグレード サイドアンダーエクステンション ※4PCS FRP 塗り分け塗装済 ジャパンプレミアム JAPAN PREMIUM トミーカイラ 1T018J01##、画面更新(リロード)であったり、画面遷移(別のページ)へ移る際に起こっています。

原因

ドロップメニューやアコーディオンメニューなどで、非表示になっている子要素のリスト(ホバーすると表示される仕様)が画面遷移する際に一瞬表示されてしまっており 【送料無料】 235/35R19 19インチ BRIDGESTONE ブリヂストン プロドライブ GC-012L 8J 8.00-19 PIRELLI ピレリ ドラゴンスポーツ サマータイヤ ホイール4本セット フジコーポレーション、ちらつきが起こる原因になっています。
本来、Javascriptで非表示にしているところが画面遷移時に上手く制御できていないこと(非表示のタイミングがページの表示より遅い)が原因かと思われます。

解決方法

解決方法はいくつかあると思いますが、今回は、子要素のリスト自体にdisplay: none;を加え非表示にしています。
子要素のリストを非表示にしても、親要素をホバーすることでjsが動きしっかりと表示されるので問題ありません。

例).flicker-clearという任意のクラスを作り、子要素のul.menuのところに付与しています。
//style.css
.flicker-clear {
 display: none;
}
 
//header.html.slim
ul.dropdown.menu data-dropdown-menu="" 
 li
 = link_to "並び順"
 ul.menu.flicker-clear
 li
 = link_to "新着順", '#'
 li
 = link_to "人気順", '#'
 li
 = link_to "PV順", '#'
 

その他の注意点

bootstrapやfoundationなどCSSフレームワークを使用している方は、上記のような現象が起こった経験がある方はいるのではないでしょうか。
CSSフレームワークは、元々用意されているクラスがあり、とても便利にスタイルを組むことができますが、色々自分でカスタマイズしようとすると、思わぬところではまってしまうことも多々あると思います。
 
他にも、下記のようにfoundation独自のクラスにpadding-rightを当ててた際 、画面遷移時横にドロップメニューが少しずれる現象が起きました。
.dropdown.menu > li.is-dropdown-submenu-parent > a {
  padding-right: 0;
}

元々表示されていない.is-dropdown-submenu-parent(.dropdownをつけることにより生成されるクラス※デベロッパーツールで確認できる)のスタイルが画面遷移時に先に適用されてしまうため横ズレが発生していました。
この場合は ミシュラン X-ICE XI3 エックスアイス スタッドレス スタッドレスタイヤ 215/45R18 WEDS ウェッズ Leonis レオニス NAVIA 05 ナビア05 ホイールセット 4本 18インチ 18 X 7 +47 5穴 114.3、.is-dropdown-submenu-parentのスタイルはいじらず、任意のクラスなどをあてることで解決することができます。

まとめ

この現象は起こらない時もありますし(回線の速度などにもよる?)、特に気にならない方には必要ないかもしれません。
また、そもそもCSSフレームワークを使っていなかったり RSW GT-R R35 シフトパネル アウター部分 平織ブラックカーボン製 クリア塗装済、

19インチ サマータイヤ セット【適応車種:スカイラインクロスオーバー(J50系)】WEDS レオニス FY パールブラックミラーカット 8.0Jx19Bluearth RV-02 245/45R19


c230t10006-t10006w66520-w66520d1130

WEDS レオニス FY パールブラックミラーカット
19インチ サマータイヤとアルミホイールのセット  適応車種: スカイラインクロスオーバーJ50系 他
ご注文前に車両への適応確認をお願いいたします

商品によっては、お取り寄せに時間をいただく場合がございます
また、欠品や完売の場合もございますので、ご注文前に納期の確認をお願いいたします
取付ナットは付属しません
サイズ等がわからない・・・そんな時はお気軽にお問い合わせください
アルミホイール
メーカー名WEDS
ホイール名レオニス FY
サイズ(F)8.0Jx19 PCD114 5穴
(R)8.0Jx19 PCD114 5穴
カラー パールブラックミラーカット
備考
タイヤ
タイヤ名YOKOHAMA Bluearth RV-02
サイズ(F)245/45R19
(R)245/45R19
適応車種ニッサン スカイラインクロスオーバー(J50系)2009~
◆タイヤホイールは、取付車両の 車種・型式・年式・駆動方式・グレード等により適合する商品を選択する必要があります。 適応車種に該当する場合でも車両のグレード等により、一部装着出来ない場合もございます。ご不明な場合は必ずお問い合わせの上、ご注文ください。◆掲載画像は代表サイズのイメージです。サイズ・穴数により実際の商品とは異なる場合がございます。◆タイヤの製造年月日は、ご指定が出来ません。あらかじめご了承ください。◆取付車種によっては、純正のナットを使用しての取付ができない場合がございます。

、CSSやJSの使い方に詳しい方には当たり前のことかもしれませんが、同じような問題が起きている方の参考に少しでもなれば幸いです!

今回も、開発日誌を読んでいただきありがとうございました!

CSS関連の案件

{yahoojp}jpprem01-zenjp40-wl-zd-65223