Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
209 changes: 121 additions & 88 deletions 02 - JS and CSS Clock/index-FINISHED.html
Original file line number Diff line number Diff line change
@@ -1,99 +1,132 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JS + CSS Clock</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>CSS Clock</title>
</head>
<body>


<div class="clock">
<div class="clock-face">
<div class="hand hour-hand"></div>
<div class="hand min-hand"></div>
<div class="hand second-hand"></div>
</div>

<div class="clock-face">
<img src="clock.jpg">
<div class="hand hour-hand"></div>
<div class="hand min-hand"></div>
<div class="hand second-hand"></div>
</div>
</div>


<style>
html {
background: #018DED url(https://unsplash.it/1500/1000?image=881&blur=5);
background-size: cover;
font-family: 'helvetica neue';
text-align: center;
font-size: 10px;
}

body {
margin: 0;
font-size: 2rem;
display: flex;
flex: 1;
min-height: 100vh;
align-items: center;
}

.clock {
width: 30rem;
height: 30rem;
border: 20px solid white;
border-radius: 50%;
margin: 50px auto;
position: relative;
padding: 2rem;
box-shadow:
0 0 0 4px rgba(0,0,0,0.1),
inset 0 0 0 3px #EFEFEF,
inset 0 0 10px black,
0 0 10px rgba(0,0,0,0.2);
}

.clock-face {
position: relative;
width: 100%;
height: 100%;
transform: translateY(-3px); /* account for the height of the clock hands */
}

.hand {
width: 50%;
height: 6px;
background: black;
position: absolute;
top: 50%;
transform-origin: 100%;
transform: rotate(90deg);
transition: all 0.05s;
transition-timing-function: cubic-bezier(0.1, 2.7, 0.58, 1);
<script>
let secondHand=document.querySelector(".second-hand");
let minHand=document.querySelector(".min-hand");
let hourHand=document.querySelector(".hour-hand");

function setDate(){
const date=new Date();
const seconds=date.getSeconds();
const secondDegrees=(seconds/60)*360 +90;
secondHand.style.transform=`rotate(${secondDegrees}deg) translateX(44px)`;
const hour=date.getHours();
const hourDegrees=(360*hour)/12 +90;
const min= date.getMinutes();
console.log(seconds);
const minDegrees=(6*min) +90;
minHand.style.transform=`rotate(${minDegrees}deg) translateX(30px)`;
hourHand.style.transform=`rotate(${hourDegrees}deg) translateX(25px) `;
console.log(secondDegrees);
}
</style>

<script>
const secondHand = document.querySelector('.second-hand');
const minsHand = document.querySelector('.min-hand');
const hourHand = document.querySelector('.hour-hand');

function setDate() {
const now = new Date();

const seconds = now.getSeconds();
const secondsDegrees = ((seconds / 60) * 360) + 90;
secondHand.style.transform = `rotate(${secondsDegrees}deg)`;

const mins = now.getMinutes();
const minsDegrees = ((mins / 60) * 360) + ((seconds/60)*6) + 90;
minsHand.style.transform = `rotate(${minsDegrees}deg)`;

const hour = now.getHours();
const hourDegrees = ((hour / 12) * 360) + ((mins/60)*30) + 90;
hourHand.style.transform = `rotate(${hourDegrees}deg)`;
setInterval(setDate, 1000);

</script>

<style>
html {
background:url(image.jpg);
background-size: cover;
font-family: 'helvetica neue';
text-align: center;
font-size: 10px;
}


img {
height:305px;
width:302px;
border-radius:100%;
}
body {
margin: 0;
font-size: 2rem;
display: flex;
flex: 1;
min-height: 100vh;
align-items: center;
}

.clock {
width: 30rem;
height: 30rem;
border: 20px solid white;
border-radius: 50%;
margin: 50px auto;
position: relative;
padding: 2rem;
fill-opacity: 1;

box-shadow:
0 0 0 4px rgba(0,0,0,0.1),
inset 0 0 0 3px #EFEFEF,
inset 0 0 10px black,
0 0 10px rgba(0,0,0,0.2);
}

.clock-face {
position: relative;
width: 100%;
height: 100%;
transform: translateY(-1px); /* account for the height of the clock hands */
transform: translateX(1px); /* account for the height of the clock hands */
}



.hour-hand{

width:50%;
height: 6px;
background: red;
position: absolute;
top: 50%;
transform-origin: 100%;
transform: rotate(90deg);
transition: all 0.05s;
transition-timing-function: cubic-bezier(0.1, 2.7, 0.58, 1); /*/second agge piche tik tik lyi*/
transform: translateX(10);
}

setInterval(setDate, 1000);

setDate();

</script>
.min-hand{
width:50%;
height: 4px;
background: red;
position: absolute;
top: 50%;
transform-origin: 100%;
transform: rotate(90deg);
transition: all 0.05s;
transition-timing-function: cubic-bezier(0.1, 2.7, 0.58, 1); /*/second agge piche tik tik lyi*/
}
.second-hand{
width:50%;
height: 2px;
background: red;
position: absolute;
top: 50%;
transform-origin: 100%;
transform: rotate(90deg);
transition: all 0.05s;
transition-timing-function: cubic-bezier(0.1, 2.7, 0.58, 1); /*/second agge piche tik tik lyi*/
}


</style>
</body>
</html>