🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1075閲覧

jQueryプラグイン:blackboxのカスタマイズ方法

usiko

総合スコア13

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2019/09/26 05:49

blackboxを使ったスライドショーでの画像サイズを変更したいです。

blackboxというプラグインを使ってフォトギャラリーサイトを制作しています。
(WEB初心者です。HTMLとCSSはそれなりの理解はあるつもりですが、jQuery、jsはコピペして使用するレベルです)

サムネイル画像をクリックすると、拡大画像が表示され、矢印ボタンでスライドを進められるタイプのものですが、
どこをさわれば、拡大画像のサイズカスタマイズができるのかがわからず、困っています。

widthやmargin、paddingなどで設定しようとすると、写真自体ではなく、スライドショーそのもの(背景まるごと)のサイズが変わってしまいます。

拡大された画像(写真だけ)のサイズを変更したく(もっと画像を小さくして周辺余白を作りたい)、
初歩的なことかもしれませんが、どなたかご教授いただけると幸いです。

該当のソースコード

css

1#darkbox{ 2 color:#4B5C6C; 3 font: 14px/1.4 sans-serif; 4 position: fixed; 5 z-index: 999999; 6 top: 0; /* since we cannot use padding */ 7 left: 0; 8 bottom: 0; 9 right: 0; 10 background: #fff none no-repeat 50% 50% / contain; 11 box-shadow: 0 0 0 0 #fff; 12 -webkit-transition: 0.3s; 13 transition: 0.3s; 14 opacity: 0; 15 visibility: hidden; 16} 17 18#darkbox.show{ 19 opacity: 1; 20 visibility: visible; 21} 22 23 24

js

1/** 2 * Darkbox - by Roko.CB 3 * https://github.com/rokobuljan/Darkbox-Gallery 4 */ 5;(function() { 6 jQuery(function($) { 7 8 var $imagesGroup, 9 n = 0, // number of images 10 c = 0, // current image index (counter 0-based) 11 12 $prevNext = $("<a id='darkbox_prev'/><a id='darkbox_next'/>").on("touchstart mousedown", function(e) { 13 e.preventDefault(); 14 e.stopPropagation(); 15 var isNext = this.id === "darkbox_next"; 16 c = isNext ? ++c : --c; 17 showImage(); 18 }), 19 20 $darkbox = $("<div/>", { 21 id: "darkbox", 22 append: $prevNext, 23 appendTo : "body" 24 }), 25 26 $darkboxClose = $("<a/>", { 27 id: "darkbox_close", 28 appendTo: $darkbox, 29 on: { 30 "touchstart mousedown" : function(e) { 31 e.preventDefault(); 32 $darkbox.removeClass("show"); 33 } 34 } 35 }), 36 37 $darkboxDescription = $("<div/>", { 38 id: "darkbox_description", 39 appendTo : $darkbox 40 }), 41 42 $darkboxStats = $("<div/>", { 43 id: "darkbox_stats", 44 appendTo : $darkbox 45 }); 46 47 function showImage() { 48 49 // Prevent counter going out of bounds 50 c = c < 0 ? n - 1 : c % n; 51 52 // Get size of window so that we can define if 53 // background-size needs to be "contain" or "auto". 54 var doc = document.documentElement, 55 docW = Math.max(doc.clientWidth, window.innerWidth || 0), 56 docH = Math.max(doc.clientHeight, window.innerHeight || 0), 57 $cur = $imagesGroup.eq(c), 58 description = $cur.data("darkbox-description"), 59 src = $cur.data("darkbox"); 60 61 $darkbox.addClass("show spinner"); 62 $darkboxDescription.html(description); 63 $darkboxStats.html(n < 2 ? "" : (c+1) +"/"+ n); 64 65 $("<img/>").on("load", function() { 66 var bigger = (this.width > docW || this.height > docH); 67 $darkbox.removeClass("spinner").css({ 68 backgroundImage: "url('" + this.src + "')", 69 backgroundSize: bigger ? "contain" : "auto" 70 }); 71 }).attr("src", src); 72 73 } 74 75 // Call darkbox 76 $(document).on("click", "[data-darkbox],[data-darkbox-group]", function(e) { 77 78 var src = $(this).data("darkbox"), 79 isDummy = !src, // (is just a link calling a group) 80 groupID = $(this).data("darkbox-group"); 81 82 $imagesGroup = !groupID ? $(this) : $('[data-darkbox-group="'+ groupID +'"]').filter("[data-darkbox]"); 83 n = $imagesGroup.length; 84 c = isDummy ? 0 : $imagesGroup.index( this ); 85 86 $prevNext.toggle(n>1); // Hide prev/next if we have a single image 87 $darkbox.css({backgroundImage:"none"}); 88 89 showImage(); // aand, ACTION! 90 }); 91 92 // Keyboard navigation 93 $(document).on("keyup", function (e) { 94 95 var k = e.which; 96 97 if (k === 27) /*ESC */ { 98 $darkbox.removeClass("show"); 99 } 100 if (k === 37) /*LEFT*/ { 101 --c; 102 showImage(); 103 } 104 if (k === 39) /*RIGHT*/ { 105 ++c; 106 showImage(); 107 } 108 }); 109 110 }); 111}()); 112

補足情報(FW/ツールのバージョンなど)

念の為、darkboxの取得リンク先です。
https://github.com/rokobuljan/Darkbox-Gallery

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

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

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

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

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

guest

回答1

0

ベストアンサー

darkboxに、top bottom left right の値で余白を付けて、box-shadow の値で背景の影の広がりを付けてるみたいです。
100pxの余白を付けるとしたらこんな感じでいけるかと思うのですが、試してみてください。

css

1#darkbox{ 2 color:#4B5C6C; 3 font: 14px/1.4 sans-serif; 4 position: fixed; 5 z-index: 999999; 6 7/* 上下左右の余白 */ 8 top: 100px; /* since we cannot use padding */ 9 left: 100px; 10 bottom: 100px; 11 right: 100px; 12 13 background: #fff none no-repeat 50% 50% / contain; 14 15/* 余白と同じ値かそれ以上の値 */ 16 box-shadow: 0 0 0 100px #fff; 17 18 19 -webkit-transition: 0.3s; 20 transition: 0.3s; 21 opacity: 0; 22 visibility: hidden; 23}

投稿2019/09/26 08:10

fareastnoise

総合スコア250

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

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

usiko

2019/09/26 19:42

わぁ、できました!!ありがとうございます!! なるほど…、box-shadowがキーだったんですね。 (ここの値の意味をまったく理解できていませんでした…ひとつ勉強になりました) 本当に助かりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問