簡體   English   中英

我可以在多個 Div 上使用相同的 JavaScript 函數嗎?

[英]Can I use the same JavaScript Function on multiple Div's?

我是 javascript 的新手,我需要用動畫條顯示百分比的圓圈進度
幸運的是我已經做到了,但問題是我想用不同的百分比制作 5 個或更多相同的圓圈並且 **我需要從頁面加載開始而不是通過單擊 ** 那么如何在多個 div 上調用該函數使圓圈同時以不同的百分比出現

這是我的 JS 代碼

 let firstLayer = document.querySelector('.cardHolder'), secondLayer = document.querySelector('.skillSecond'), startValue = 0, endValue = 50, duration = 20; let progress = setInterval(() => { startValue++ secondLayer.textContent = `${startValue}%` firstLayer.style.background = `conic-gradient(rgb(15, 176, 6) ${startValue * 3.6}deg, rgb(193, 193, 193) 0deg)` if (startValue == endValue) { clearInterval(progress) } }, duration);
 .cardHolder { display: flex; justify-content: center; align-items: center; background: conic-gradient(rgb(15, 176, 6) 3.6deg, rgb(193, 193, 193) 0deg); width: 100px; height: 100px; border-radius: 100%; }.skillFirst { display: flex; justify-content: center; align-items: center; background-color: #90697a; width: 80%; height: 80%; border-radius: 100%; }.skillSecond { font-family: 'Montserrat Subrayada', sans-serif; font-size: 24px; }
 <div class="cardHolder"> <div class="skillFirst"> <div class="skillSecond"> <span class="skillContent"></span> </div> </div> </div>

這就是我想出的。 基本上它的工作原理是制作一個包含每個單獨進度條規范的對象數組。 然后遍歷規范並開始每個間隔。

 let progression = [ { progressBarId: "first", progressBarLabelId: "first_label", startValue: 0, endValue: 50, duration: 20 }, { progressBarId: "second", progressBarLabelId: "second_label", startValue: 10, endValue: 100, duration: 10 }, { progressBarId: "third", progressBarLabelId: "third_label", startValue: 50, endValue: 80, duration: 20 } ]; window.onload = function() { for(var i = 0; i < progression.length; i++) { let firstLayer = document.getElementById(progression[i].progressBarId), secondLayer = document.getElementById(progression[i].progressBarLabelId), startValue = progression[i].startValue, endValue = progression[i].endValue, duration = progression[i].duration; let progress = setInterval(() => { startValue++ secondLayer.textContent = `${startValue}%` firstLayer.style.background = `conic-gradient(rgb(15, 176, 6) ${startValue * 3.6}deg, rgb(193, 193, 193) 0deg)` if (startValue == endValue) { clearInterval(progress) } }, duration); } }
 .cardHolder { display: flex; justify-content: center; align-items: center; background: conic-gradient(rgb(15, 176, 6) 3.6deg, rgb(193, 193, 193) 0deg); width: 100px; height: 100px; border-radius: 100%; }.skillFirst { display: flex; justify-content: center; align-items: center; background-color: #90697a; width: 80%; height: 80%; border-radius: 100%; }.skillSecond { font-family: 'Montserrat Subrayada', sans-serif; font-size: 24px; }
 <div class="cardHolder" id="first"> <div class="skillFirst"> <div class="skillSecond" id="first_label"> <span class="skillContent" ></span> </div> </div> </div> <div class="cardHolder" id="second"> <div class="skillFirst"> <div class="skillSecond" id="second_label"> <span class="skillContent" ></span> </div> </div> </div> <div class="cardHolder" id="third"> <div class="skillFirst"> <div class="skillSecond" id="third_label"> <span class="skillContent" ></span> </div> </div> </div>
希望這對您有所幫助,如果沒有,請發表評論!

我怎樣才能添加多個輸入到這個<div>使用 javascript function?</div><div id="text_translate"><p> 對於上下文,這是我正在開發的基於 Django 的應用程序。 我在 HTML 文檔中使用此腳本。 當按下按鈕時,它會運行以下 function。 目的是創建一個元素,然后包含幾個輸入等等。 我遇到的問題是,當我使用以下 append 語句向 div 添加一個輸入時,如果我嘗試添加另一個輸入類型(例如復選框),它會覆蓋第一個輸入(搜索)。 如何在腳本中進行 append 多個輸入? 我總共需要 3 個不同的輸入。 </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> var counter = 1; //limits amount of transactions function addElements() { if (counter &lt; 5) //only allows 4 additional transactions { let div = document.createElement('div'); div.id = 'row' + counter; document.body.appendChild(div); let input = document.createElement('input'); input.id='search'+counter; input.type = 'search'; input.placeholder = 'Search by product name' div.appendChild(input); let button = document.createElement('button'); button.id ='button'+counter; button.type = 'QRscan'; button.innerText = 'QR scan' div.appendChild(button); } counter++ if (counter &gt;= 6) { alert("You have reached the maximum transactions.") } } addElements();</pre></div></div><p></p></div>

[英]How can I add multiple inputs to this <div> using javascript function?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 如何使 function 適用於 javascript 中具有相同類的多個 div? 如何使用JavaScript使用相同的功能對多個輸入字段進行數據驗證? 我可以使用循環在元素ID遞增的情況下多次執行相同的函數調用嗎? 如何使用 javascript 變量作為 html 的 div id? 我怎樣才能添加多個輸入到這個<div>使用 javascript function?</div><div id="text_translate"><p> 對於上下文,這是我正在開發的基於 Django 的應用程序。 我在 HTML 文檔中使用此腳本。 當按下按鈕時,它會運行以下 function。 目的是創建一個元素,然后包含幾個輸入等等。 我遇到的問題是,當我使用以下 append 語句向 div 添加一個輸入時,如果我嘗試添加另一個輸入類型(例如復選框),它會覆蓋第一個輸入(搜索)。 如何在腳本中進行 append 多個輸入? 我總共需要 3 個不同的輸入。 </p><p></p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false"><div class="snippet-code"><pre class="snippet-code-js lang-js prettyprint-override"> var counter = 1; //limits amount of transactions function addElements() { if (counter &lt; 5) //only allows 4 additional transactions { let div = document.createElement('div'); div.id = 'row' + counter; document.body.appendChild(div); let input = document.createElement('input'); input.id='search'+counter; input.type = 'search'; input.placeholder = 'Search by product name' div.appendChild(input); let button = document.createElement('button'); button.id ='button'+counter; button.type = 'QRscan'; button.innerText = 'QR scan' div.appendChild(button); } counter++ if (counter &gt;= 6) { alert("You have reached the maximum transactions.") } } addElements();</pre></div></div><p></p></div> 如何在Twitter的Popover中使用“div”和多個按鈕? 為什么不能在Javascript的同一函數范圍內使用變量? 如何在Javascript中使用相同的passValue函數兩次? 如何將相同的$(document).ready(function()用於多個輸入? 多個ID調用同一個JavaScript函數
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM