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

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

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

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

Q&A

解決済

1回答

655閲覧

CSSのみで作られたフェード式スライドショーの各画像にそれぞれリンクをつけたい

goun

総合スコア11

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

0グッド

0クリップ

投稿2018/08/01 01:00

編集2018/08/01 01:20

https://peonyqueen.wordpress.com/2016/03/04/css_slider/
こちらで紹介されているフェード式スライドショーの各画像にリンクを付けたいです。

<style> .slider{ width:1000px; height:400px; margin:0 auto; position:relative; } .slider ul{ margin:0; padding:0; list-style:none; } .slider ul li{ width:1000px; height:400px; position:absolute; top:0; left:0; animation-iteration-count:infinite; animation-duration:24s; } @keyframes slider{ 0%{ opacity:0; } 20.83%{ opacity:1; } 33.33%{ opacity:1; } 45.83%{ opacity:0; } 100%{ opacity:0; } } </style> <div class="slider"> <ul> <li><a href="01.htm"><img src="01.jpg" ></a></li> <li><a href="02.htm"><img src="02.jpg" ></a></li> <li><a href="03.htm"><img src="03.jpg" ></a></li> </ul> </div>

このようにしましたが、1枚目・2枚目の画像にも3枚目用のリンクがかかってしまい、うまくいきません。
li全体にリンクを貼ってみましたが、結果は同じでした。
それぞれの画像に別のリンクを張る方法について、CSSのみで解決できる方法があれば教えていただきたいと思って投稿しました。
よろしくお願いします。

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

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

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

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

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

m.ts10806

2018/08/01 01:16

そもそも現在のコードだけでは3枚目のみ表示されて動かずスライドになっていないように思うのですが(Chromeで確認)コードは本当にこれで全てですか?
goun

2018/08/01 01:20

大変失礼しました。修正いたしました。引き続きよろしくお願いいたします。
guest

回答1

0

ベストアンサー

リンク先に肝心のアニメーション用コードがありますが、それを記述してくれないと回答しづらいです。

本題ですが、画像は重なっていて常に3番目のリンクが一番上に来ています。
それをopacity(透明度)の変化によって表示させているだけなので、このままでは3番目のリンクしかクリックできません。

keyframeのプロパティでopacityのほかにz-indexできちんと表示されている画像を一番上に来るように設定する事で対応できるかと思います。

css

1@keyframes slider{ 2 0%{ 3 opacity:0; 4 z-index: -1; 5 } 6 20.83%{ 7 opacity:1; 8 z-index: 999; 9 } 10 33.33%{ 11 opacity:1; 12 z-index: 999; 13 } 14 45.83%{ 15 opacity:0; 16 z-index: -1; 17 } 18 100%{ 19 opacity:0; 20 z-index: -1; 21 } 22}

この回答で解決できるとは思いますが、後から見た人も分かりやすいように、リンク先の”CSS(アニメーションの設定)”のコードも追記してくださいね。

投稿2018/08/01 01:23

yukihisa

総合スコア672

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

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

goun

2018/08/01 01:43

コードの不足について大変失礼いたしました。 わかりやすい説明をありがとうございます。 なるほど、フレームごとにz-indexで前に出したり下げたりするのですね。 実際に意図したとおりに動いたのですが、もう少しz-indexについて調べて理解したいと思います。 感謝致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問