Skip to content

Instantly share code, notes, and snippets.

@AliAlmasi
Created July 2, 2023 22:44
Show Gist options
  • Save AliAlmasi/7ec420375143e96872a69948edc4e5d8 to your computer and use it in GitHub Desktop.
Save AliAlmasi/7ec420375143e96872a69948edc4e5d8 to your computer and use it in GitHub Desktop.
"Ferris wheel" with HTML & CSS. From freeCodeCamp Responsive Web Design Certification curriculum.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ferris Wheel &mdash; Ali Almasi </title>
<link rel="stylesheet" href="./style.css">
</head>
<body>
<div class="wheel">
<span class="line"></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"></span>
<span class="line"></span>
<div class="cabin"></div>
<div class="cabin"></div>
<div class="cabin"></div>
<div class="cabin"></div>
<div class="cabin"></div>
<div class="cabin"></div>
</div>
</body>
</html>
*,*::before, *::after {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
background-color: #222;
}
body {
display: flex;
justify-content: center;
align-items: center;
height: 80vh;
}
.wheel {
border: 2px solid white;
border-radius: 50%;
margin-left: 50px;
position: absolute;
height: 50vw;
width: 50vw;
max-width: 500px;
max-height: 500px;
animation: wheel 10s linear infinite;
}
.line {
background-color: white;
width: 50%;
height: 2px;
position: absolute;
top: 50%;
left: 50%;
transform-origin: 0% 0%;
}
.line:nth-of-type(2) {
transform: rotate(60deg);
}
.line:nth-of-type(3) {
transform: rotate(120deg);
}
.line:nth-of-type(4) {
transform: rotate(180deg);
}
.line:nth-of-type(5) {
transform: rotate(240deg);
}
.line:nth-of-type(6) {
transform: rotate(300deg);
}
.cabin {
background-color: red;
width: 20%;
height: 20%;
position: absolute;
border: 2px solid;
transform-origin: 50% 0%;
animation: cabins 10s linear infinite;
}
.cabin:nth-of-type(1) {
right: -8.5%;
top: 50%;
}
.cabin:nth-of-type(2) {
right: 17%;
top: 93.5%;
}
.cabin:nth-of-type(3) {
right: 67%;
top: 93.5%;
}
.cabin:nth-of-type(4) {
left: -8.5%;
top: 50%;
}
.cabin:nth-of-type(5) {
left: 17%;
top: 7%;
}
.cabin:nth-of-type(6) {
right: 17%;
top: 7%;
}
@keyframes wheel {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
@keyframes cabins {
0% {
transform: rotate(0deg);
}
25% {
background-color: yellow;
}
50% {
background-color: purple;
}
75% {
background-color: yellow;
}
100% {
transform: rotate(-360deg);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment