JavaScript

複数のブロック要素をタイル状に並べてくれる「jQuery Masonry」の紹介

記事内に商品プロモーションを含む場合があります

横並びに並んだ複数のボックス要素を綺麗にタイル状に敷き詰めてくれる、JavaScriptのライブラリ「Masonry」の紹介です。公式サイトは以下のページでご覧ください。

http://masonry.desandro.com/

ライブラリのダウンロードもリンク先のページでどうぞ。リンク先のページにアクセスして、ブラウザの横幅を変化させると、画像がおしゃれに動きますよ!! ちなみにリンク先のページにはjQueryのプラグインとしてではなく、ただのJavaScriptのライブラリとしても動作すると書いてありますが、ここではjQueryを使用した例を紹介することにします。

それではさっそく使ってみましょう!
まずはjQuery本体とmasonryのライブラリの読み込みからです。

<script src="jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="masonry.pkgd.min.js" type="text/javascript"></script>
<script>
$(function(){
  $('#container').masonry({
    itemSelector : '.item'
  });
});
</script>

こんな感じです。この例ではまず、id名containerというボックス要素を用意し、その中にクラス名がitemという複数のボックスを入れて横並びに並べるようにします。
masonryというメソッドの中身にライブラリのオプションをいろいろ設定することができます。
詳しくは公式サイトのOptions解説ページをご覧ください。

http://masonry.desandro.com/options.html

HTMLの方はこのように書きます。

<div id="container">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>

CSSはこんな感じ

<style>
.item {
  widht:200px;
  height:300px;
  margin:10px;
  float:left;
  background-color:red;
}
</style>

並べたいボックス要素をfloat:left;でフローティングさせるのがポイントでしょうか。

ボックス要素の中にimgタグで書かれた画像を設定しギャラリーページのようにしたい、という人もいると思いますが、ページを開いたときにボックスがつぶれてしまうという場合があるそうです。これはライブラリの側でボックス要素の幅と高さがちゃんと計算されていないのが原因です。その場合、

<img src="dummy.jpg" width="ここに横幅" height="ここに高さ" />

このようにimgタグにwidthとheightを設定するとうまくいくと思います。



ご覧いただきありがとうございました!

各種SNS等で活動を行っております。よろしければ併せてフォローしていただけるとうれしいです!
X(旧Twitter)
Instagram
note
SNSではブログでは書けない内容や、管理人のプライベートな情報の発信を行っています。DM等でのご相談も随時承っておりますので、どうぞよろしくお願いいたしますm(__)m

「いいね!」と思ったら、クリックお願いいたします<m(__)m>
にほんブログ村 メンタルヘルスブログ 統合失調症へ 統合失調症ランキング
にほんブログ村 介護ブログ 障がい者福祉・介護へ 障がい者ランキング
にほんブログ村 企業ブログ IT・情報通信業へ IT・通信業ランキング
ABOUT ME
立花浩紀
Web制作を専門とするフリーランスです。就労継続支援B型の職業指導員をしていました。統合失調症の当事者でもあります。福祉ITラボではITと障害福祉を掛け合わせた情報を発信しています。放送大学 心理と教育コース 所属。社会福祉士養成課程。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA