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

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

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

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

Q&A

解決済

1回答

1453閲覧

lightcase.jsの「prev」「next」ボタン位置をモーダルウインドウ上に配置する方法

Master0121

総合スコア18

JavaScript

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

0グッド

0クリップ

投稿2019/11/01 01:09

編集2019/11/01 01:14

現在「lightcase.js」を使用してギャラリーの作成を行っているのですが、1点希望通りの配置にできず困っていることがあります。
表題の通り、画像をグループ化してギャラリーにした際に表示される「prev」「next」のボタン位置を変更する方法がわかりません。
希望としては表示されたモーダルウインドウの上にボタンを表示し、それぞれモーダルから10~20pxほど左右にずれた位置に配置したいと考えています(prevボタンは左に10~20px、nextボタンは右に10~20px)。
デフォルトの状態だとモーダルウインドウではなく画面幅全体の左から15px(prev)、右から15px(next)、下から50%の位置に固定されており、モーダルウインドウのサイズに依存しない形となっています。
モーダルウインドウのサイズを固定にできれば力技で絶対位置の指定をすることでなんとか再現は出来るのですが、アップする画像のサイズは固定ではなく、画像によってモーダルウインドウのサイズは変わるため絶対位置の指定では無理があります。
オプションの指定なども調べてみたのですが、該当しそうなものを見つけることができませんでした。

【html】 <ul class="c__gallery"> <li class="c__gallery--container"> <a data-rel="lightcase:myCollection" href="#inline1"> <img src="images/sample-img.png" alt=""> <p class="c__gallery--caption">キャプション名キャプション名キャプション名</p> </a> </li> <li class="c__gallery--container"> <a data-rel="lightcase:myCollection" href="#inline2"> <img src="images/sample-img.png" alt=""> <p class="c__gallery--caption">キャプション名キャプション名キャプション名</p> </a> </li>  ・・・ <div id="inline1" class="modal__area" style="display: none;"> <div class="modal__area--content"> <img src="images/sample_modal01.png" class="modal__area--img" alt=""> <p class="modal__area--caption">キャプション名キャプション名キャプション名キャプション名キャプション名</p> </div> </div> <div id="inline2" class="modal__area" style="display: none;"> <div class="modal__area--content"> <img src="images/sample_modal02.png" class="modal__area--img" alt=""> <p class="modal__area--caption">キャプション名キャプション名キャプション名キャプション名キャプション名</p> </div> </div>  ・・・ <div id="lightcase-nav" data-lc-ispartofsequence="true"> <a href="#" class="lightcase-icon-prev" style="display: block;"> <span>Prev</span> </a> <a href="#" class="lightcase-icon-next" style="display: block;"> <span>Next</span> </a> <a href="#" class="lightcase-icon-play" style="display: none;"> <span>Play</span> </a> <a href="#" class="lightcase-icon-pause" style="display: none;"> <span>Pause</span> </a> </div>
【lightcase.css】 a[class*='lightcase-icon-'].lightcase-icon-prev { left: 15px; } a[class*='lightcase-icon-'].lightcase-icon-next { right: 15px; } a[class*='lightcase-icon-'] { bottom: 50%; margin-bottom: -0.5em; } a[class*='lightcase-icon-'], a[class*='lightcase-icon-']:focus { text-decoration: none; color: rgba(255, 255, 255, 0.6); -webkit-tap-highlight-color: transparent; -webkit-transition: color, opacity, ease-in-out 0.25s; -moz-transition: color, opacity, ease-in-out 0.25s; -o-transition: color, opacity, ease-in-out 0.25s; transition: color, opacity, ease-in-out 0.25s; } a[class*='lightcase-icon-'] { position: fixed; z-index: 9999; width: 1.123em; height: auto; font-size: 38px; line-height: 1; text-align: center; text-shadow: none; outline: none; cursor: pointer; }

【参考】
https://cornel.bopp-art.com/lightcase/
こちらのページの「Using collections and slideshows」にあるギャラリーとほぼ同一です。
変更したものとしては「prev」「next」の画像くらいです。

※どうしてもlightcaseでなくてはいけないわけではありません。
画像のグループ化ができてモーダルウインドウ上にキャプションを表示でき、
商用利用が可能であれば他のプラグインへの変更も可能です。

【追記】
完成形のイメージ画像を添付致します(上記参考サイトより)
イメージ説明

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

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

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

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

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

guest

回答1

0

ベストアンサー

lightcase.js のデモを見てみましたが、prevnextposition: fixedで配置されてますね。

合わせる方法としては、以下などどうでしょう?

  1. モーダルで表示する要素の幅を取得しておく
  2. CSSでprevleft: 50%;nextright: 50%を指定する。(矢印中央に配置する)
  3. 1で取得した幅の半分をprevnextにそれぞれネガティブマージンで指定して外に出す。

これができれば、やりたいことはできるかと思います。

それか以下のプラグインなどを使えば、位置を調整するのはもっと楽にできるかと思います。
jQuery IZIMODAL

投稿2019/11/01 14:32

mksk

総合スコア247

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

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

Master0121

2019/11/07 00:50

ご連絡が遅くなりまして申し訳ありません。 ご提示頂いた方法で、どうにか解決までこぎつけそうです。 お忙しいところアドバイス有難うございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問