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

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

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

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

CSS

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

Q&A

解決済

1回答

277閲覧

JavaScriptのスライドショーの切り替えをCSSでアニメーションをつけたけどうまくいきません

umigame_Rails

総合スコア66

JavaScript

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

CSS

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

0グッド

0クリップ

投稿2022/06/19 11:45

ボタンが押されるたびにCSSで画像をふわっと切り替えたい

JSでスライドショーを作っています
下記のコードでボタンが押されるたびに画像をふわっと変えたいのですが一度目のクリックしかCSSが有効になりません

試したこと

Classを消したりして見たのですが変わりません
どうすればクリックされるたびに画像をふわっと切り替えれますか?

HTML

1<div id='slider'> 2 <img src="img/img1.jpg" id='img_photo'> 3</div> 4 5<span id='front' class='play_btn'> 6<button type="button">▶</button> 7</span> 8 9<script> 10var i = 1; 11var slider = document.getElementById('slider'); 12 13// 進むボタン 14document.getElementById('front').addEventListener('click', function(){ 15 slider.classList.remove('slider'); 16 slider.classList.add('slider'); 17 var img = document.getElementById('img_photo'); 18 if(i < 5 ){ 19 i++; 20 21 img.src = 'img/img' + i + '.jpg'; 22 } else { 23 i = 1; 24 img.src = 'img/img' + i + '.jpg'; 25 } 26 27}); 28 29</script>

CSSはこうしてます

CSS

1img{ 2 width: 600px; 3 height: 400px; 4} 5 6.slider img{ 7 animation-name: fade; 8 animation-duration: 3s; 9 10} 11 12 13 14@keyframes fade{ 15 0%{ 16 opacity: 0; 17 } 18 100%{ 19 opacity: 1; 20 } 21}

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

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

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

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

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

guest

回答1

0

ベストアンサー

こうするとどうでしょうか。

js

1 slider.classList.remove('slider'); 2 setTimeout(() => { 3 slider.classList.add('slider'); 4 var img = document.getElementById('img_photo'); 5 if (i < 5) { 6 i++; 7 8 img.src = 'http://placehold.jp/150x150.png?text=img' + i + '.jpg'; 9 } else { 10 i = 1; 11 img.src = 'http://placehold.jp/150x150.png?text=img' + i + '.jpg'; 12 } 13 }, 1);

投稿2022/06/20 03:05

Lhankor_Mhy

総合スコア36115

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問