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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

1266閲覧

twitterのような画像一覧を作りたい

退会済みユーザー

退会済みユーザー

総合スコア0

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2015/11/16 09:02

開発中のサイトのためにTwitterのような画像一覧ページを作りたいと思っています。
Twitterの画像一覧

Tiwitterの画像一覧の特徴は見た限りだと
1、元画像からのアスペクト比が固定
2、余白がなく画像が敷き詰められている
4、行ごとに高さが揃っている
3、ウィンドウサイズを変えた時にリサイズされる

というようなものです。(他にも色々とあると思いますが)

デバッグツール(firebug)を使って画像要素の属性変化を監視してみたりしたのですが、コードをたどるのが難しく
どういう処理なのか全体像を把握することが出来ませんでした。

どういったcssで動いているのか、またjavascriptであれば大まかにどのような処理で実現するのか
教えてください。
よろしくお願いします。

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

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

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

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

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

guest

回答1

0

想像になりますが、おそらくこんな流れで出来るんじゃないかなと思います。
*javascriptとCSSだけでは多分無理で、基本的にはサーバサイドで頑張って、随時読み込みとか拡大縮小だけクライアントサイドでやっているんじゃないでしょうか。

サーバサイドの処理の予想
0. 検索結果される
0. アクセスしてきたブラウザに相応しい横幅(合計幅)を決める
0. 一つ目の画像を取得して、アスペクト比固定のまま、で1行目の一列目として記憶
0. 二つ目の画像を「アスペクト比そのままで高さを一つ目の画像に合わせた場合の横幅が[合計幅ナイナス一つ目の画像幅]より小さいものから選ぶ
0. 三つ目の画像を、[アスペクト比そのままで高さを一つ目の画像に合わせた場合の横幅が合計幅 マイナス [一つ目+二つ目の横幅]]とほぼ同じ画像から選ぶ
0. 以下、行ごとに処理

  • これだけだと常に三つの画像になるので、行ごとに画像の数をある程度の幅でランダムに変化させればいけると思います。

投稿2015/11/16 13:58

tanat

総合スコア18713

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

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

退会済みユーザー

退会済みユーザー

2015/11/17 05:06

回答ありがとうごいました。2枚の画像選択処理の部分で、DBからサイズのちょうどいい画像をを選択して並べるとおっしゃいましたが、私の制作しているサイトはtwitterと同じ様に投稿日時順に並べたいのでそれでは難しいかと思います。
tanat

2015/11/17 05:29

そもそも論として、twitterの画像検索では全ての画像が表示されている訳でも無いんじゃないでしょうか。 母数が極端に多いのでそれっぽく見えますが、数分単位で存在するような画像(例えばキーワード 猫)がちょっと下の方に行くと数時間単位で表示されているのはサイズ以外にも閲覧数やその他の基準で選別されているからでしょう。 あなたの制作しているサイトがTwitterと同様の条件をそろえられるなら、上記回答の検索条件に「一つ前の画像より古いもの」という条件を加えれば可能だと思いますよ。 通常はそれは無理なので、全く同じことをすることは諦めて ・投稿するタイミングで画像アスペクト比をある程度固定する ・サムネイルとして表示するタイミングでトリミングする ・サムネイルとして表示するタイミングでアスペクト比を変える ・それらの複合 するしかないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問