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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

Q&A

解決済

1回答

1280閲覧

スライドショーを再開する方法がわかりません

退会済みユーザー

退会済みユーザー

総合スコア0

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

0グッド

0クリップ

投稿2020/05/28 00:52

編集2020/05/28 01:26

画像をクリックしたらスライドショーを止めて、もう一度クリックしたら再開するようにしたいのですが、再開することができません。
どなたか教えていただけますでしょうか。

jquery

1$(function () { 2 $('.slideshow').each(function () { 3 let $slides = $(this).find('img'), 4 slideCount = $slides.length, 5 currentIndex = 0; 6 $slides.eq(currentIndex).fadeIn(); 7 timer = setInterval(showNextSlide, 1000); 8 function showNextSlide () { 9 let nextIndex = (currentIndex + 1) % slideCount; 10 $slides.eq(currentIndex).fadeOut(); 11 $slides.eq(nextIndex).fadeIn(); 12 currentIndex = nextIndex; 13 } 14 }); 15 $('img').on('click', function() { 16 if (timer != null) { 17 clearInterval(timer); 18 timer = null; 19 } else { 20 setInterval(showNextSlide, 1000); 21 } 22 }); 23});

JQUERY

1$(function () { 2 $('.slideshow').each(function () { 3 let $slides = $(this).find('img'), 4 slideCount = $slides.length, 5 currentIndex = 0; 6 $slides.eq(currentIndex).fadeIn(); 7 timer = setInterval(showNextSlide, 1000); 8 function showNextSlide () { 9 let nextIndex = (currentIndex + 1) % slideCount; 10 $slides.eq(currentIndex).fadeOut(); 11 $slides.eq(nextIndex).fadeIn(); 12 currentIndex = nextIndex; 13 } 14 function stop() { 15 clearInterval(timer); 16 timer = null; 17 } 18 $('img').on('click', function() { 19 if (timer != null) { 20 stop(); 21 } else { 22 setInterval(showNextSlide, 1000); 23 timer = 1; 24 } 25 }); 26 }); 27});

2番目のJQUERYのようにすれば、再開はできたのですが、2度目以降ののストップと再開ができません。

html

1<!DOCTYPE html> 2<html class="no-js" lang="ja"> 3<head> 4<meta charset="UTF-8"> 5<meta http-equiv="X-UA-Compatible" content="IE=edge"> 6<title>Chapter 05-01 &#xB7; jQuery 最高の教科書</title> 7<link rel="stylesheet" href="./css/normalize.css"> 8<link rel="stylesheet" href="./css/main.css"> 9<script src="./js/vendor/modernizr.custom.min.js"></script> 10<script src="./js/vendor/jquery-1.10.2.min.js"></script> 11<script src="./js/main.js"></script> 12</head> 13<body> 14 15<header class="hero-header"> 16 <div class="inner"> 17 <div class="slideshow"> 18 <img src="./img/slide-1.jpg" alt="" width="1600" height="465"> 19 <img src="./img/slide-2.jpg" alt="" width="1600" height="465"> 20 <img src="./img/slide-3.jpg" alt="" width="1600" height="465"> 21 <img src="./img/slide-4.jpg" alt="" width="1600" height="465"> 22 </div> 23 </div> 24</header> 25 26</body> 27</html>

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

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

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

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

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

kei344

2020/05/28 01:11

回答が付いた質問の編集は慎重に行ってください。質問文のコードについて回答にて指摘があった場合は「追記」し、元のコードを編集する場合も「直したこと」がわかるようにしてください。後から見た人から見て、現在回答されておられる方の回答が「無いコードに対しての指摘」になり、意味がわからなくなります。
退会済みユーザー

退会済みユーザー

2020/05/28 01:23

了解です。
guest

回答1

0

ベストアンサー

clearIntervalしたあとにtimerにnullいれないといけないですね

投稿2020/05/28 00:59

y_waiwai

総合スコア87784

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

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

退会済みユーザー

退会済みユーザー

2020/05/28 01:08

上記のようにしてもできませんでした...
y_waiwai

2020/05/28 01:11

そうやったコードを提示しましょう。
y_waiwai

2020/05/28 01:16 編集

ああ、修正済みなのね。 なら、 timer = setInterval(showNextSlide, 1000); しましょうよ
y_waiwai

2020/05/28 01:17

ちと間違い修正
退会済みユーザー

退会済みユーザー

2020/05/28 01:27

再開はできましたが、2回目以降のストップと再開ができなくなりました。
y_waiwai

2020/05/28 01:29

2つ上のコメント参照のこと。 なぜそういう動作になるのか、ご自分で動作を追いかけていきましょうよ
退会済みユーザー

退会済みユーザー

2020/05/28 01:38

何度もすみませんでした。
y_waiwai

2020/05/28 01:51

setInterval(showNextSlide, 1000); timer = 1; を、 timer = setInterval(showNextSlide, 1000); にしましょう
退会済みユーザー

退会済みユーザー

2020/05/28 01:56

できました! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問