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

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

新規登録して質問してみよう
ただいま回答率
85.48%
jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

Q&A

2回答

2248閲覧

画像をサムネイル化してくれるjQuery「MyThumbnail.js」をスマホサイトで利用したい

terataka

総合スコア61

jQueryプラグイン

jQueryの拡張機能。 様々な種類があり、その数は膨大です。公開済みのプラグインの他にも、自作することもできます。 jQueryで利用できるようにしておくだけで、導入およびカスタマイズが比較的容易に行なえます。

0グッド

0クリップ

投稿2017/02/06 02:04

MyThumbnailをスマホサイトで利用したいです。
1200x600程度の画像を正方形に抜きその画像の説明を写真下に掲載した物をslickで画面に2枚表示させてカルーセルさせようとしました。

html

1 <div class="new_c"> 2 <div class="new_c_div"><a href="#"><img src="images/p/01.jpg" ><br />ここに写真の名前1</a> </div> 3 <div class="new_c_div"><a href="#"><img src="images/p/02.jpg" ><br />ここに写真の名前2</a> </div> 4 <div class="new_c_div"><a href="#"><img src="images/p/03.jpg" ><br />ここに写真の名前3</a> </div> 5 <div class="new_c_div"><a href="#"><img src="images/p/04.jpg" ><br />ここに写真の名前4</a> </div> 6 <div class="new_c_div"><a href="#"><img src="images/p/05.jpg" ><br />ここに写真の名前5</a> </div> 7 <div class="new_c_div"><a href="#"><img src="images/p/06.jpg" ><br />ここに写真の名前6</a> </div> 8 <div class="new_c_div"><a href="#"><img src="images/p/07.jpg" ><br />ここに写真の名前7</a> </div> 9 <div class="new_c_div"><a href="#"><img src="images/p/08.jpg" ><br />ここに写真の名前8</a> </div> 10 </div> 11 <script> 12 13$(document).ready(function(){ 14 $(".new_c_div img").MyThumbnail({ 15 thumbWidth: 150, 16 thumbHeight: 150, 17// imageDivClass: :"new_c", // 生成されるdivのclass 18// bShowPointerCursor: false, // trueの場合、カーソル形状cursor:pointerへ設定 19 }); 20}); 21 22 23$(function(){ 24$('.new_c').slick({ 25autoplay:true, 26autoplaySpeed:5000, 27slidesToShow:2, 28pauseOnHover:true, 29responsive:true 30}); 31}); 32</script>

当然かもしれませんが、端末ごとで余白等がまちまちになってしまい、予想通りの表示にはなってくれませんでした。
(chromeデベロッパツールで確認。galaxyS5で綺麗に見えると、iPhone5で右余白が無くなったり…)
MyThumbnailの「thumbWidth」をパーセントで出来ればとも考えたのですが、そうすると縦サイズが取得できなくなりますよね…

どうにかして、横方向をパーセントで表示・縦はそれに合わせて正方形で切り抜きと出来ないでしょうか?
MyThumbnailにこだわりはないので、他のプラグインで出来るようだったら乗り換えします。
また、slickのカルーセル表示にもこだわりはありません。厳しいようだったら<li>を使ったりして2枚×○枚の表示でもかまいません。

良い方法があれば教えてください。

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

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

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

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

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

guest

回答2

0

わたしは、そういった場合cssで解決したことはあります。

■中央に合わせてトリミング

html

1<div class="trim"><img src="画像URL" alt=""></div> 2<div class="trim"><img src="画像URL" alt=""></div> 3<div class="trim"><img src="画像URL" alt=""></div> 4<div class="trim"><img src="画像URL" alt=""></div>

css

1/* trimming */ 2.trim { 3 width: 150px; /* トリミングしたい幅 */ 4 height: 150px; /* トリミングしたい高さ */ 5 overflow: hidden; 6 position: relative; 7} 8.trim img { 9 position: absolute; 10 top: 50%; 11 left: 50%; 12 -webkit-transform: translate(-50%, -50%); 13 -ms-transform: translate(-50%, -50%); 14 transform: translate(-50%, -50%); 15} 16 17/* layout */ 18div { 19 float: left; 20 border: 1px solid #000; 21 -webkit-box-sizing: border-box; 22 -moz-box-sizing: border-box; 23 box-sizing: border-box; 24}

参考:http://www.tam-tam.co.jp/tipsnote/html_css/post10099.html

jqueryにこだわりがなければ、こちらを試しては如何でしょうか。

投稿2017/02/06 03:29

shiho_k

総合スコア49

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

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

terataka

2017/02/06 04:25

返答ありがとうございます。 jQueryにこだわりはありません。 しかし、保存する画像のサイズ・縦横比がばらばらなのが問題になってしまう気がします… (縦画像やデジカメ・スマホで撮影した物があり、縦横比が一定ではないです) 参考サイトのように、どうしても綺麗に表示できないのではないでしょうか? .trim を .new_c_div に置き換えて、とりあえず設置してみました。 横幅はいい感じにリサイズしているのですが、縦横比が元画像のままで真四角にトリミングしてくれませんでした。 参考サイトの/* layout */のdivの指定もこのままだと全部のdivにかかってしまいますよね… 「new_c」や「new_c_div」で試してみたのですが、変化無しです。 どのようにしたら良いでしょうか?
shiho_k

2017/02/07 07:09

なるほど拡大もしなければいけないということですね・・・ 親要素に指定したサイズに上下左右を拡大縮小・トリミングしていいかんじに収めてくれるプラグインがありましたので、こちらで試してはどうでしょう? このプラグインも有名ですね。 http://magpepen.hatenablog.com/entry/2013/12/12/181609
guest

0

画面幅取得して2で割って念のため小数点を切り捨て、とか。

JavaScript

1var img_width = Math.floor( window.innerWidth / 2 );

投稿2017/02/06 02:24

kei344

総合スコア69407

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

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

terataka

2017/02/06 02:41

返答ありがとうございます! これはどこに記入したら良いのでしょうか?(素人ですみません…) また、幅はこれで取得できるとして高さはどのようにしたらいいのでしょうか? (ここで計算した物を高さにもセット?その場合どのように記述したら良いのでしょう…)
kei344

2017/02/06 02:50

> これはどこに記入したら 使う場所の直前でよいでしょう。 > 高さはどのように 「横に二個正方形の画像を並べたい」のでは? それであれば thumbWidth と thumbHeight は同じ値でしょう。
terataka

2017/02/06 03:03

すみません。 素人すぎて全然理解できないです。 >使う場所の直前でよいでしょう。 ------ <script> var img_width = Math.floor( window.innerWidth / 2 ); $(document).ready(function(){ $(".new_c_div img").MyThumbnail({ ~ ---- と言う事で良いのでしょうか? >「横に二個正方形の画像を並べたい」のでは? それであれば thumbWidth と thumbHeight は同じ値でしょう。 これはどのように記載したらいいのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問