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

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

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

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

2363閲覧

CSSだけでフェイドイン型スライダーを作りたい

HealingSalon104

総合スコア11

CSS3

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2016/12/14 08:15

下記のURLを参考にCSSだけでスライダーの作成を試みました。

▼フェイドイン型フォトギャラリー(レスポンシブ)
http://css.programming.jp/?p=901

上記のタグに対して、サムネイルを小さくして、フォトギャラリーの上に置きました。

【得たい結果】
①CSSだけでスライダーを作る
②サムネイルをクリックすると、画像がフェイドインで入れ替わる
③サムネイルとクリックすると、目的のURLに飛ぶ。
(ここで書くタグにはすべて「#」が入ってますが、実際のURLを記述したとき、そのような問題が発生しました。)

【発生した問題】
上記③をもくろんで5枚の画像に5カ所の<a href>を記載するも、どの画像を押しても、一番最後のURLに飛んでしまう。

<div id="photo5" class="photo"><a href="#"><img src="wp-images/5.jpg" alt=""></a></div> ↑ここに貼られているリンク先に飛んでしまう。

[HTML]

<!doctype html> <html> <head> <meta charset="utf-8"> <title>CSSだけでスライダー</title> <link rel="stylesheet" href="css/style.css"> </head> <body> <div id="stage"> <input type="radio" id="r1" name="gal"> <input type="radio" id="r2" name="gal"> <input type="radio" id="r3" name="gal"> <input type="radio" id="r4" name="gal"> <input type="radio" id="r5" name="gal"> <img style="width:100%" src="wp-images/1.jpg"> <div id="photo1" class="photo"><a href="#"><img src="wp-images/1.jpg" alt=""></a></div> <div id="photo2" class="photo"><a href="#"><img src="wp-images/2.jpg" alt=""></a></div> <div id="photo3" class="photo"><a href="#"><img src="wp-images/3.jpg" alt=""></a></div> <div id="photo4" class="photo"><a href="#"><img src="wp-images/4.jpg" alt=""></a></div> <div id="photo5" class="photo"><a href="#"><img src="wp-images/5.jpg" alt=""></a></div> <div style="padding:0 0;"></div> <div id="thumbs"> <label for="r1"><img src="wp-images/s1.jpg"></label> <label for="r2"><img src="wp-images/s2.jpg"></label> <label for="r3"><img src="wp-images/s3.jpg"></label> <label for="r4"><img src="wp-images/s4.jpg"></label> <label for="r5"><img src="wp-images/s5.jpg"></label> </div> </div> </body> </html>

[CSS]

/*ギャラリー全体のコンテナー*/ #stage { position: relative; max-width: 709px; margin: 0 auto; } /*全サムネイルのコンテナー*/ #thumbs { margin-right:2%; position: absolute; top:220px; left:400px; } /*サムネイルの幅、ポインターを手のひら*/ #thumbs label img { width:16%;/*18.5%*/ cursor: pointer; border: 3px solid #fff ; border-radius: 10px; -webkit-border-radius: 10px; -moz-border-radius: 10px; } #thumbs label img:hover { border: 3px solid #3d42e3; -webkit-transition: border 0.2s ease; transition: border 0.2s ease; } /*ラジオボタンを非表示に*/ #r1, #r2, #r3, #r4, #r5 { display: none; } /*表示写真の初期配置(全部透明に)とtransition設定*/ .photo { position: absolute; left: 0; top: 0; } .photo img { width:100%; opacity: 0; -webkit-transition: opacity 1s ease; transition: opacity 1s ease; } /*チェックされたサムネイルに相当する写真だけを表示*/ #r1:checked ~ #photo1 img, #r2:checked ~ #photo2 img, #r3:checked ~ #photo3 img, #r4:checked ~ #photo4 img, #r5:checked ~ #photo5 img { opacity: 1; }

※なお画像の大きさは「709px×285px」サムネイルにしようしたものは「120px×120px」を準備しました。

参考にしたサイトは、すべて最初に画像に
opacity: 0;をかけて透明化し、
該当の画像が押された時だけ、
opacity: 1;にして、透明化を解除して画像を表示しているようです。

5枚全部重なってる状態だから、一番最後の画像に貼られたリンク先に飛んでしまうと予測しているのですが、
対処方法がわかりません。

同じ効果が得られて、画像にリンクされている各々の先に飛べるなら、
opacity使用じゃないアイデアでもかまいません。

お手数ですが、みなさまのご教授をお待ちしております。
よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

z-index で重ね順を操作してみては?

【重ねて表示する!CSSのz-indexの使い方 | TechAcademyマガジン】
https://techacademy.jp/magazine/8645

【CSS再入門 - z-index再入門 1 | CodeGrid】
https://app.codegrid.net/entry/z-index-1

投稿2016/12/14 08:19

kei344

総合スコア69398

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

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

HealingSalon104

2016/12/14 09:01

ありがとうございます! 下記のタグを追加したら、目的通りの動きになりました! #thumbs { z-index: 3; } #photo1,#photo2,#photo3,#photo4,#photo5{ z-index: 1; } /*チェックされたサムネイルに相当する写真だけを表示*/ #r1:checked ~ #photo1, #r2:checked ~ #photo2, #r3:checked ~ #photo3, #r4:checked ~ #photo4, #r5:checked ~ #photo5{ z-index: 2; }
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問