質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

2回答

2375閲覧

Rails 4系 画像の一覧表示

smith

総合スコア73

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2014/12/11 13:09

画像の一覧表示を参考サイトのデザインに当て込んで表示する方法を教えてください

参考サイト

決めうちの画像にデザインを当て込む方法はわかりますが、動的になるとわかりません
現在はeach doで画像を表示しています。

開発環境
1.bootstrapは使える状態

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

もといい方法ありました。このgemが最高です。

masonry-rails のインストール

$ vi Gemfile
gem 'masonry-rails'
$ bundle install

github: kristianmandrup/masonry-rails

masonry 関連のファイルを読み込む

application.css で require。

app/assets/stylesheets/application.css

*= require 'masonry/basic'
*= require 'masonry/centered'
*= require 'masonry/fluid'
*= require 'masonry/gutters'
*= require 'masonry/infinitescroll'
*= require 'masonry/right-to-left'
*= require 'masonry/transitions'
必要なものを require します。各々の機能詳細は readme 参照。

jquery.mansory を application.js で require。

app/assets/javascripts/application.js

1
//= require masonry/jquery.masonry
他にも Option で require できるのがあるので、これも readme 参照。

masonry.js.coffee スクリプトを作成

通常の jQuery で書いても良いですが、私は勉強がてら CoffeeScript で書きました。

app/assets/javascripts/masonry.js.coffee

$ ->
$('#masonry-container').masonry
itemSelector: '.mas-box',
gutterWidth: 5,
isAnimated: true,
animationOptions: {
duration: 500,
easing: 'swing'
}
$ ->
$('.mas-box').hide();
$('.mas-box').each((i) ->
$(this).delay(i * 100).fadeIn(1000))
上のが、Masonry でのレイアウトを指定する部分。

itemSelector : ‘.mas-box’
=> CSS の id が masonry-container 内の、mas-box クラスを一つの要素(タイル1枚)と指定する。

gutterWidth: 5,
=> タイル要素同士の幅を 5px にする。

isAnimated: true
=> ブラウザサイズの変更時に、指定したオプションでアニメーションさせる。

下のは、画像の表示をフェードインさせる処理。

Rails のビューファイル作成

最後に、Rails のビューファイル。images に写真情報の配列が入っているとします。

#masonry-container {
margin: 0 auto;
height: 100%;
}

.mas-box {
width:158px;
margin:5px;
padding:6px;
float: left;
}

html.erbは下記の通りです。

<!-- アイテムインデックス --> <div id="masonry-container"> <% @items.each do |item| %> <div class="mas-box"> <%= link_to(item) { image_tag item.picture1_url(:thumb) ,class:"img-rounded " if item.picture1? } %> </div> <% end %> </div>

投稿2014/12/12 02:47

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

コード書いてみました。

<!-- アイテムインデックス -->
<div id="container"> <div class="item"> <div class="row"> <div class="col-lg-12"> <% @items.each do |item| %> <%= link_to(item) { image_tag item.picture1_url(:thumb) ,class:"img-rounded " if item.picture1? } %> <% end %> </div> </div> </div> </div>

投稿2014/12/11 23:05

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問