@kanisan_00

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

問題文を読み上げた後に選択肢を表示させるには(Jquery)

解決したいこと

htmlで、四択問題クイズを作成しています。

問題文を読み上げた後に、選択肢をフェードインさせるような作りにしたいのですが、
以下のソースコードでは読み上げの途中で選択肢が表示されてしまいます。

素人が作成したソースコードで申し訳ないのですが
改善点を教えていただければと思います。

該当するソースコード

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
  <!--   jQuery・bootstrapライブラリ読み込み -->
  <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>

  <link href="css/test.css" rel="stylesheet" />
  <title>第1問</title>
  <script src="js/typed.js"></script>
  <audio src="XXXXXXXXXXX.mp3" id="correctMusic" ></audio>

</head>

<body>
<div class="textboard">
  <div class="center">
  <div class="quiz">
    問題文
  </div>

  <div class="answerArea">
      <a href="#" class="answer" id="correctFunc">1.</a>
      <a href="#" class="answer">2.</a>
      <a href="#" class="answer">3.</a>
      <a href="#" class="answer">4.</a>
    </div>
</div>
</div>
<!-- ############ javascript  ############ -->
<script type="text/javascript">
// ページ読み込み路に実行する関数
$(document).ready( function(){
var mondai = '問題文'
$synthes = new SpeechSynthesisUtterance(mondai);
$.when(
  // 問題文を読む
    speechSynthesis.speak($synthes),
)
.done(function() {
  // 選択肢を時間差でフェードインさせる
  $('.answerArea').delay(6000).fadeIn("slow");
})
.fail(function() {
    alert('error');
});
});

$('#correctFunc').on('click',function(){
  // 正解音を鳴らす
  $("#correctMusic").get(0).play();

});

</script>

</body>
</html>

0 likes

1Answer

endイベントが使えるはずです。

$synthes.onend = function () {
  $('.answerArea').fadeIn("slow");
};
speechSynthesis.speak($synthes);
1Like

Comments

  1. @kanisan_00

    Questioner

    教えていただいた方法でできました!

    ありがとうございます!

Your answer might help someone💌