BLOGでエントリーから画像だけを読み出しサムネイルを集めたhttp://www.photocase.com/photobrowser.aspのようなページを作ろうと考えています。
画像の大きさはまちまちなのでmax-width:100px; max-height:100pxとしました。
しかしmax/min-height/widthはIE6に対応しません。
そこで▼以下の2つを試してみました。
・max-width in Internet Explorer(IE独自のexpressionを利用)
http://www.svendtofte.com/code/max_width_in_ie/
・minmax.js module(Java Scriptを利用)
http://doxdesk.com/software/js/minmax.html
ただしこれらの使用方法に従って記載しても、max-width:100px; height:100px(縦長の画像は100px×100pxに)またはwidth:100px; max-height:100px(横長の画像は100px×100pxに)となってしまいます。
Java Script、CSS、または両方を使って解決できる方法がありましたら教えていただけませんでしょうか。
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
#1です。
> これをサムネイルの表示をする時点でそれぞれ本来の縦横比率に表示する
> ことは難しいでしょうか。
これではどうでしょう。個々のサムネイルごとに修正をかけるので、少しはましかと……。
<html>
<head>
<style type="text/css"><!--
/* 100x100の領域だけ取って、表示しない。 */
img.thumb { visibility: hidden; width: 100px; height: 100px; }
/* ただし、これではスクリプトOFFだと全く表示されない。 */
--></style>
<script type="text/javascript"><!--
function func(img) {
/* 一旦縦横とも"auto"にして実寸を取得。長い方を"100px"に再設定。そして表示。 */
img.style.width = "auto";
img.style.height = "auto";
if (img.width > img.height) {
if (img.width > 100) img.style.width = "100px";
} else {
if (img.height > 100) img.style.height = "100px";
}
img.style.visibility = "visible";
}
--></script>
</head>
<body>
<p>
<img class="thumb" src="適当な画像1" onload="func(this)">
<img class="thumb" src="適当な画像2" onload="func(this)">
<img class="thumb" src="適当な画像3" onload="func(this)">
</p>
</body>
</html>
tabideさん、ご丁寧に教えていただいてありがとうございました。
イメージしていたものとピッタリの結果で大変うれしいです。
心からお礼を申し上げます。
ありがとうございました。
No.2
- 回答日時:
No.1
- 回答日時:
試しに作ってみました。
こんなんでどうでしょう。<html>
<head>
<style type="text/css"><!--
/* スクリプトOFFの場合。これでも実寸表示よりはまし。 */
img.thumb { width: 100px; height: 100px; }
--></style>
<script type="text/javascript"><!--
function func() {
list = document.getElementsByTagName("img");
for (i = 0; i < list.length; i++) {
if (list[i].className == "thumb") {
/* 一旦縦横とも"auto"にして実寸を取得。長い方を"100px"に再設定。 */
list[i].style.width = "auto";
list[i].style.height = "auto";
if (list[i].width > list[i].height) {
if (list[i].width > 100) list[i].style.width = "100px";
} else {
if (list[i].height > 100) list[i].style.height = "100px";
}
}
}
}
--></script>
</head>
<body onload="func()">
<p>
<img class="thumb" src="適当な画像1">
<img class="thumb" src="適当な画像2">
<img class="thumb" src="適当な画像3">
</p>
</body>
</html>
この回答への補足
tabideさん、お返事が遅くなってスミマセン。
まさにやりかったことがこんなにも短いコードで実現できて大変うれしいです。
ただ、もし可能であればもうひとつだけ教えていただけませんでしょうか。
現在のコードだと横長も縦長もいったん100px×100pxで表示され、
エントリーから読み出しが終わった段階で本来の縦横比率に修正されます。
これをサムネイルの表示をする時点でそれぞれ本来の縦横比率に表示する
ことは難しいでしょうか。
サムネイルがすべて表示された後で、画像の縦横比率が変更されると
「何が起きたんだろう」と少し違和感を感じます。
お知恵をお借りできれば幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- オープンソース cssで中央寄せ 1 2023/05/19 06:25
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- HTML・CSS (Javascript)印刷するファイルに応じて印刷プレビュー画面で用紙を自動的に切り替えたい!! 2 2022/04/11 12:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
embed要素のsrc属性の値を変更...
-
デフォルト非表示にしたい。【t...
-
Colorboxがうまく設置できません
-
jQueryでのドラッグアンドドロ...
-
マウスオーバーで画像の入れ替え
-
JQueryを使用して、画像をドラ...
-
jQueryで同じクラス名のものを...
-
JQueryで画像の上で文字を動かす
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
複数のバナーをリロードする度...
-
onmouseoverの表示切り替えが上...
-
onclickで画面が固まる・・・ら...
-
チェックボックスに入っている...
-
JavaScriptで変更した属性の元...
-
Gifアニメ、最後のコマに行った...
-
【コーディング】途中から位置...
-
jQueryでサーバー上のファイル...
-
クリックで色変更後に既に変更...
-
removeEventListenerについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Colorboxがうまく設置できません
-
デフォルト非表示にしたい。【t...
-
「画像クリックで音声再生」を ...
-
Javascript初心者|jQueryの.va...
-
jQueryで同じクラス名のものを...
-
複数bxsliderをタブで切り替え...
-
画像の表示位置
-
embed要素のsrc属性の値を変更...
-
JQueryでオープニングアニメー...
-
jQueryでのドラッグアンドドロ...
-
全部のサイコロをjavascriptで...
-
JavaScriptでクレイアニメ。ち...
-
bxsliderで最初に縦に複数表示...
-
アップロードファイルの種類に...
-
clear機能を失わずにファイルア...
-
JavaScriptでの画像切り替えを...
-
マウスカーソルに合わせて画像...
-
交互に入れ替わる画像を複数配置
-
サイトに横スクロールのスライ...
-
サムネイルにカーソルを合わせ...
おすすめ情報