devwiki:javascript

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
devwiki:javascript [2022/02/05 18:47] – [HTML5 and Javscript] yingdevwiki:javascript [2024/02/03 15:18] (current) – [Timer operation] ying
Line 42: Line 42:
   * button click confetti:   * button click confetti:
     * https://codemyui.com/confetti-pop-out-on-button-click/     * https://codemyui.com/confetti-pop-out-on-button-click/
 +
 +====== array operation ======
 +  * array to string <code javascript>
 +const fruits = ["Banana", "Orange", "Apple", "Mango"];
 +let text = fruits.join(';');
 +</code>
 +  * process array <code javascript>
 +// process like police man in back-door truck, first in last out, last in first out
 +let truck_queue = ['Bob', 'Willy', 'Mini'];
 +deploy_police = main_queue.pop(); // left ['Bob', 'Willy'] output 'Mini'
 +// add new police
 +cats.push('Puff', 'George'); // left ['Bob', 'Willy', 'Puff', 'George']
 +
 +// process like coffee shop, first in first out, last in last out
 +let coffee_queue = ['Bob', 'Willy', 'Mini'];
 +cur_customer = coffee_queue.shift(); // left ['Willy', 'Mini'], output 'Bob'
 +
 +// also can cut queue to like this
 +coffee_queue.unshift('Puff', 'George'); // ['Puff', 'George', 'Willy', 'Bob']
 +
 +// also add new to coffee queue normall
 +coffee_queue.push('Sam'); // ['Puff', 'George', 'Willy', 'Bob', 'Sam']
 +</code>
 +
 +====== UI interaction operation ======
 +
 +  * scroll to top for scrollable element <code javascript>
 +document.getElementById("coinbox_content").scrollTop = 0
 +
 +#css part
 +.coinbox_content{
 +    float: left;
 +    width: 430px;
 +    height: 100%;
 +    overflow: auto;
 +}
 +</code>
 +
 +====== Timer operation ======
 +
 +  * If the timer is intended to run indefinitely and you want a continuous countdown, the setInterval method is a simple and suitable choice. To stop, you need to explicitly clear it using clearInterval.
 +  * If you want more control over the execution, especially if there are additional conditions for stopping or restarting the timer, the setTimeout recursive approach might be preferred.
 +
 +<code javascript>
 +let timer = 5 * 60; // Convert minutes to seconds
 +const timerIndicator = document.getElementById('timerIndicator');
 +
 +// method a: Display count down, bad: will still run after time=0
 +setInterval(function() {
 +    timer--;
 +    timerIndicator.textContent = formatTimer(timer);
 +    if (timer <= 0) {
 +        alert('Form submit');
 +    }
 +}, 1000);
 +
 +// method b: will not run after time=0
 +function updateTimer() {
 +    timer--;
 +    timerIndicator.textContent = formatTimer(timer);
 +    if (timer <= 0) {
 +        alert('Form submit');
 +    } else {
 +        setTimeout(updateTimer, 1000);
 +    }
 +}
 +updateTimer(); // Start the timer.
 +// end of method b
 +
 +function formatTimer(seconds) {
 +    const minutes = Math.floor(seconds / 60);
 +    const remainingSeconds = seconds % 60;
 +    return `${String(minutes).padStart(2, '0')}:${String(remainingSeconds).padStart(2, '0')}`;
 +}
 +</code>
  
 ====== HTML5 and Javscript ====== ====== HTML5 and Javscript ======
  • devwiki/javascript.1644086839.txt.gz
  • Last modified: 2022/02/05 18:47
  • by ying