Skip to main content

The js seems like stop working when I switch to another tab on browser, is a problem?

I made a clock. I realized that when I switch another tab and came back after a while the clock stop behind current time. I found something named web workers, is it related to this?? Same senteces, don't read. I made a clock. I realized that when I switch another tab and came back after a while the clock stop behind current time. I found something named web workers, is it related to this??

I expected the code work anytime but it didn't. The code:

let numbers = document.getElementsByClassName('number');
let numbersLength = numbers.length-1; 
let numberContainer = document.querySelectorAll('.number > div');
let minute = document.querySelector('#minute');
let hour = document.querySelector('#hour');
let second = document.querySelector('#second');
let startSecond = new Date().getSeconds()*6;
let startHour = new Date().getHours()*30;
let startMinute = new Date().getMinutes()*6;


setInterval(increaseSecond, 1000);

function readyHour() {
    //second starting position
    second.style.transform = `rotate(${startSecond}deg)`;
    minute.style.transform = `rotate(${startMinute}deg)`;
    hour.style.transform = `rotate(${startHour}deg)`;
    
    //numbers positions
    for(let i = 0; i <= numbersLength; i++){
        numbers[i].style.transform = `rotate(${i*30}deg)`;
        numberContainer[i].style.transform = `rotate(${-(i*30)}deg)`;
    }
}
readyHour();

function increaseSecond(){
    let currentSecond = new Date().getSeconds();
    let currentMinute = new Date().getMinutes();
    let currentHour = new Date().getHours();

    second.style.transform = `rotate(${currentSecond*6}deg)`;
    if(currentSecond === 0){
        minute.style.transform = `rotate(${currentMinute*6}deg)`;
    };

    if(currentMinute === 0)
        hour.style.transform = `rotate(${currentHour*30}deg)`;
        
}
*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
body{
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
}
.clock{
    background-color: black;
    height: 350px;
    width: 350px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    position: relative;
    border: 8px solid #31e1e7;
}

.number{
    font-size: 3rem;
    color: #ffffff;
    text-align: center;
    position: absolute;
    height: 100%;
    width: 100%;
}

.hand{
    position: absolute;
    left: 49.2%;
    bottom: 50%;
    width: 3px;
    background-color: red;
    transform-origin: bottom;
}
#second{
    z-index: 10;
    height: 120px;
}
#minute{
    height: 110px;
}

#hour{
    height: 65px;
}

#clock-center{
    background-color: #ffffff;
    height: 15px;
    width: 15px;
    z-index: 11;
    border-radius: 50%;
    position: absolute;
}
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="assets/main.css">
</head>
<body>
    
</head>
<body>
    <div class="clock">
        <div id="clock-center"></div>
        <div class="hand " id="minute"></div>
        <div class="hand " id="hour"></div>
        <div class="hand" id="second"></div>
        
        <div class="number"><div>12</div></div>
        <div class="number"><div>1</div></div>
        <div class="number"><div>2</div></div>
        <div class="number"><div>3</div></div>
        <div class="number"><div>4</div></div>
        <div class="number"><div>5</div></div>
        <div class="number"><div>6</div></div>
        <div class="number"><div>7</div></div>
        <div class="number"><div>8</div></div>
        <div class="number"><div>9</div></div>
        <div class="number"><div>10</div></div>
        <div class="number"><div>11</div></div>
    </div>
    
    <script src="assets/main.js"></script>
</body>
</html>
Via Active questions tagged javascript - Stack Overflow https://ift.tt/eBUEjTK

Comments

Popular posts from this blog

Prop `className` did not match in next js app

I have written a sample code ( Github Link here ). this is a simple next js app, but giving me error when I refresh the page. This seems to be the common problem and I tried the fix provided in the internet but does not seem to fix my issue. The error is Warning: Prop className did not match. Server: "MuiBox-root MuiBox-root-1" Client: "MuiBox-root MuiBox-root-2". Did changes for _document.js, modified _app.js as mentioned in official website and solutions in stackoverflow. but nothing seems to work. Could someone take a look and help me whats wrong with the code? Via Active questions tagged javascript - Stack Overflow https://ift.tt/2FdjaAW

How to show number of registered users in Laravel based on usertype?

i'm trying to display data from the database in the admin dashboard i used this: <?php use Illuminate\Support\Facades\DB; $users = DB::table('users')->count(); echo $users; ?> and i have successfully get the correct data from the database but what if i want to display a specific data for example in this user table there is "usertype" that specify if the user is normal user or admin i want to user the same code above but to display a specific usertype i tried this: <?php use Illuminate\Support\Facades\DB; $users = DB::table('users')->count()->WHERE usertype =admin; echo $users; ?> but it didn't work, what am i doing wrong? source https://stackoverflow.com/questions/68199726/how-to-show-number-of-registered-users-in-laravel-based-on-usertype

Why is my reports service not connecting?

I am trying to pull some data from a Postgres database using Node.js and node-postures but I can't figure out why my service isn't connecting. my routes/index.js file: const express = require('express'); const router = express.Router(); const ordersCountController = require('../controllers/ordersCountController'); const ordersController = require('../controllers/ordersController'); const weeklyReportsController = require('../controllers/weeklyReportsController'); router.get('/orders_count', ordersCountController); router.get('/orders', ordersController); router.get('/weekly_reports', weeklyReportsController); module.exports = router; My controllers/weeklyReportsController.js file: const weeklyReportsService = require('../services/weeklyReportsService'); const weeklyReportsController = async (req, res) => { try { const data = await weeklyReportsService; res.json({data}) console