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

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

ただいまの
回答率

90.51%

  • CSS

    7526questions

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

  • CSS3

    2621questions

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

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

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 787

下記の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使用じゃないアイデアでもかまいません。

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

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 18: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;
    }

    キャンセル

同じタグがついた質問を見る

  • CSS

    7526questions

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

  • CSS3

    2621questions

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