Masonryを導入してPinterest風レイアウトを関連記事に設定してみた

関連記事のデザインが普通過ぎたのでもう少しかっこ良くしようと思い、あのPinterestで有名なグリッドレイアウトに設定してみました。

Pinterest風グリッドレイアウトとは

これ!このいかした個々のグリッドがうまい具合に積み重なってくれる様なレイアウト。
pinterest-grid-layout

Masonryとは

そのグリッドレイアウトを簡単に実現してくれるJavaScriptのライブラリ。

ウィンドウの横幅に合わせてグリッドがうにゅうにゅとアニメーションしてくれます。

どのように動くかはこちら

設定後

ウィンドウの横幅を狭めるとそれにあわせてグリッドのサイズもアニメーション付きで変わってくれます(PCブラウザのみ)。ある程度の狭さまでいくと2列になるように設定しました。

このページは関連記事がないのでこちらで動きが確認できます。

iPhoneから見るとウィンドウサイズは変えられないのでアニメーションは無いけどグリッドレイアウトにはなってくれます。
masonry-iphone

若干の問題発生

でもiPhoneからだとたまにグリッドがかぶってしまう時があってそれが悩みです。JavaScriptがうまく動いてくれてないのか、masonry系のコードを差し込む場所が悪いのかなんなのかわからず…PCブラウザからだと全く問題はないのだけれども。ウィンドウのサイズを変えないとJavaScriptが走ってない時があるんじゃないか疑惑もあるようなないような…でもいつもって訳でもなさそうだしちょっとよくわかりません…

救世主現る

と思いきやすごく参考になる記事を見つけましてそちらの解決策を試してみたら解決したような!

jQuery Masonryを使う際にわりと大事なimagesLoadedプラグイン(ウェブ、ショウジンさんの記事)

どうやら画像の読み込みがmasonryに影響してたようです。画像が読み込まれてないうちにmasonryが動いちゃうと高さがうまくとれないとか。PCだと大丈夫でiPhoneだとよく起こったのもその辺の処理速度が原因だったりしたのかななんて。でもこれでなんとか綺麗に表示されるようになってすごく感謝!

レイアウトでなにか問題があるなら描画のタイミングをまず疑ってみるのがいいのかもしれないと改めて実感です。

コメントはお気軽にどうぞ