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

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

詳細はこちら
HTML

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

CSS

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

Q&A

解決済

1回答

2376閲覧

cssのみのスライドをつくってますが、リンクがうまく反応しません

nanarimom

総合スコア5

HTML

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

CSS

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

0グッド

0クリップ

投稿2019/10/25 03:06

いま、cssのみしか使えないところでフェードのスライダーを作っているのですが、
リンクがうまく反応しません。
スペーサーの画像と、フェードで2枚の画像を入れ替えて表示させたいのですが、画像にはっているリンクがうまく反応しません。
1巡目の表示では、1枚目2枚目ともにリンクがきれいに飛ぶのですが、
2巡目からの表示では、2枚目の画像にはっているリンクにどちらも飛んでしまいます。
なぜだか半日考えてもわからず、質問させていただきました。

発生している問題・エラーメッセージ

リンクがきれいにとばない

該当のソースコード

HTMLのコード

1<div class="slide-show"> 2 <a href="#"> 3 <img src="img1" /></a><!-- 一番下のスペーサー画像 --> 4 <a href="#1"> 5 <img src="img1" /></a> 6 <a href="#2"> 7 <img src="img2" /></a> 8 9</div> 10 11 12  CSSのコード 13 div.slide-show { 14 width: 1000px; /* スライドショーの幅 */ 15 max-width: 100%; 16 margin: 20px auto; /* 中央 */ 17 position: relative; 18} 19 20.slide-show a { 21 animation: show 12s infinite; /* 12秒のスライドショー */ 22 max-width: 100%; 23 opacity: 0; 24 position: absolute; /* 画像を重ねて表示 */ 25 left: 0; 26 top: 0; 27 height: 0; 28 overflow: auto; 29} 30 31@keyframes show { 32 0% {opacity: 0; height: auto;} 33 17% {opacity: 1; height: auto;} 34 33% {opacity: 1; height: auto;} 35 50% {opacity: 0; height: auto;} 36} 37 38.slide-show a:nth-of-type(1) { 39 position: relative; 40} 41 42.slide-show a:nth-of-type(2) { 43 animation-delay: 0s; 44} 45 46.slide-show a:nth-of-type(3) { 47 animation-delay: 6s; 48} 49 50

試したこと

heightを0に指定しないと、リンクがとばない。
だけどそうすると、2枚目のフェードがおかしくなる。

なので、@keyframesにもheightをautoで指定しました。

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

どなたかぜひご教授願います。

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

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

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

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

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

guest

回答1

0

ベストアンサー

.slide-show a:nth-of-type(3) がアニメーション開始時点(6秒)で
.slide-show a:nth-of-type(2) の上に重なって、そのままになっているのが原因と考えられます。

z-indexで要素の上下を上げ下げしてみてはいかがでしょうか?

CSS

1@keyframes show { 2 0% {opacity: 0; height: auto; z-index: 0;} 3 17% {opacity: 1; height: auto; z-index: 2;} 4 33% {opacity: 1; height: auto; z-index: 2;} 5 50% {opacity: 0; height: auto; z-index: 0;} 6}

投稿2019/10/25 03:35

AsukaKobayashi

総合スコア296

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

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

nanarimom

2019/10/25 04:00

フェードもリンクもきれいに飛ぶようになりました!本当に助かりました。 ランチに行く前にお尋ねして、帰ってきた時にはもう回答があって、はやさに驚きました。 的確なアドバイスありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問