第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

動畫冒泡排序算法

動畫冒泡排序算法

慕森王 2021-10-29 16:27:21
我正在嘗試制作一個(gè)簡單的冒泡排序算法動畫。我有幾個(gè)里面有文字的 div:https : //codepen.io/menezesr08/pen/pozYMKG我的目標(biāo)是交換 div 內(nèi)的文本,因?yàn)樗惴ㄕ趫?zhí)行交換。我最初的方法是獲取所有 div,遍歷它們并在進(jìn)行交換時(shí)更改“innerHTML”。這個(gè) html 更改發(fā)生得太快了,所以有沒有辦法減慢它的速度,使其看起來像動畫?<div class="box">  <p>8</p></div><div class="box">  <p>2</p></div><div class="box">  <p>10</p></div><div class="box">  <p>12</p></div>
查看完整描述

1 回答

?
慕尼黑8549860

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊

如果您使用的是最新瀏覽器,您可以嘗試以下操作(自包含的 css 和 JS)。使用帶有 async/await 語法的 CSS 轉(zhuǎn)換和 promise。您可以直接在此處運(yùn)行代碼片段。


<!DOCTYPE html>

<html>

  <head>

    <meta charset="UTF-8" />

    <meta

      name="viewport"

      content="width=

    

    , initial-scale=1.0"

    />

    <meta http-equiv="X-UA-Compatible" content="ie=edge" />

    <title>Document</title>

    <style>

      .box1 {

        height: 100px;

        width: 100px;

        background: red;

        display: inline-block;

        vertical-align: middle;

        transition: transform 1s linear;

      }


      p {

        text-align: center;

        color: yellow;

        font-size: 30px;

      }

    </style>

  </head>


  <body>

    <div class=" box1">

      <p>8</p>

    </div>

    <div class="box1">

      <p>2</p>

    </div>

    <div class="box1">

      <p>12</p>

    </div>

    <div class="box1">

      <p>10</p>

    </div>

    <div class="box1">

      <p>2</p>

    </div>

    <div class="box1">

      <p>1</p>

    </div>

    <script>

      var divs = document.getElementsByTagName("div");


      var firstNumberHTML = divs[0].getElementsByTagName("p");

      var maxNumberDiv = divs[0];

      var maxNumber = Number(firstNumberHTML[0].innerHTML);

      async function bubbleSort (){

         for (var i = 1; i < divs.length; i++) {

         let currentNumberHTML = divs[i].getElementsByTagName("p");

         let number = Number(currentNumberHTML[0].innerHTML);

         await new Promise(res => {

             setTimeout(() => res("delay"), 1000);

         })

        if (maxNumber > number) {

            const offset = divs[i].getBoundingClientRect().x -

            maxNumberDiv.getBoundingClientRect().x;

            let prevTranslateMaxDiv = maxNumberDiv.style.transform.replace("translateX","").replace("(","").replace(")", "").replace("px", ""); 

            prevTranslateMaxDiv = Number(prevTranslateMaxDiv) === NaN ? 0: Number(prevTranslateMaxDiv);

            maxNumberDiv.style.transform = `translateX(${prevTranslateMaxDiv + offset}px)`;

            divs[i].style.transform = `translateX(-${offset}px)`;

          } else {

            maxNumberDiv = divs[i];

            maxNumber = number;

          }      

      }

      }

      bubbleSort();

     

    </script>

  </body>

</html>


查看完整回答
反對 回復(fù) 2021-10-29
  • 1 回答
  • 0 關(guān)注
  • 139 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號