亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我如何使用 div 類中的這些 JS 數組數據而不是數組

我如何使用 div 類中的這些 JS 數組數據而不是數組

慕標5832272 2023-09-28 17:16:51
在這個腳本中有三個問題作為 JS 數組,但我想使用 div 類內容而不是 js 數組。這是我的js動畫,帶有“下一步”按鈕,它在下一個數組旁邊一一進行動畫處理,但我希望這些帶有測驗類的div必須像該數組一樣,一一進行動畫處理。<div class="quiz">The color of the sky is...?</div><div class="quiz">Paper comes from...?</div><div class="quiz">How many hours in a day?</div> 例如:這里的js數組結構是這樣的:questions = [        "The color of the sky is...?",      "Paper comes from...?",        "How many hours in a day?"];但我想使用這個 div 類內容而不是數組格式<div class="quiz">The color of the sky is...?</div><div class="quiz">Paper comes from...?</div><div class="quiz">How many hours in a day?</div>為此,我嘗試了這段代碼,但它在這里不起作用var questions = document.getElementsByClassName("quiz");for(i = 0; i < pageDivs.length;i++){所以請可愛的 stackoverflow 社區的任何成員都可以幫助我解決這個問題。預先感謝您的幫助。
查看完整描述

1 回答

?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

使用


var questions = Array.from(document.getElementsByClassName("quiz")).reduce((carry, item) => {

  carry.push(item.textContent.trim())

  return carry;

}, []);

var question = 0;


//var  questions = [

//    "The color of the sky is...?",

//    "Paper comes from...?",

//    "How many hours in a day?"

//  ];

var questions = Array.from(document.getElementsByClassName("quiz")).reduce((carry, item) => {

  carry.push(item.textContent.trim())

  return carry;

}, []);


var anim;

var targets;


function prepQuestion() {

  $("#questions").text(questions[question]);


  var textWrappers = document.querySelectorAll('#questions');

  textWrappers.forEach(textWrapper => {

    textWrapper.innerHTML = textWrapper.textContent.replace(/(\S*)/g, m => {

      return `<span class="word">` +

        m.replace(/(-|)?\S(-|@)?/g, "<span class='letter'>$&</span>") +

        `</span>`;

    });

  });


  targets = Array.from(document.querySelectorAll('#questions .letter'));


  anim = anime.timeline()

    .add({

      targets: targets,

      scale: [3, 1],

      scaleY: [1.5, 1],

      opacity: [0, 1],

      translateZ: 0,

      easing: "easeOutExpo",

      duration: 400,

      delay: (el, i) => 60 * i

    });

}


// init

prepQuestion();


function next() {

  anim = anime.timeline()

    .add({

      targets: targets.reverse(),

      scale: [1, 3],

      scaleY: [1, 1.5],

      opacity: [1, 0],

      translateZ: 0,

      easing: "easeOutExpo",

      duration: 100,

      delay: (el, i) => 30 * i

    });


  anim.complete = () => {

    if (question == questions.length - 1) {

      question = 0;

    } // reset question

    else {

      question++;

    }


    prepQuestion();

  };

}

#questions {

  font-weight: 900;

  font-size: 2.5em;

  font-family: rr;

}


#questions .letter {

  display: inline-block;

  line-height: 1em;

}


.word {

  white-space: nowrap;

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.0/anime.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<div class="quiz">The color of the sky is...?</div>

<div class="quiz">Paper comes from...?</div>

<div class="quiz">How many hours in a day?</div>

<div class="quiz">A Giraffe is a fish?</div>


<div id="questions"></div>

<br>

<Button id="rc" onclick="next()">Next</Button>


查看完整回答
反對 回復 2023-09-28
  • 1 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號