Pure CSS Animated Background

Chia sẻ với các bạn một đoạn code nhỏ nhưng hiệu ứng của nó khá…

Author
Zo Dev
July 8, 2021

Chia sẻ với các bạn một đoạn code nhỏ nhưng hiệu ứng của nó khá đơn giản nhưng đẹp mắt. Mình tin chắc rằng đoạn code nhỏ này các bạn tùy biến lại có thể dùng trong rất nhiều trường hợp.

https://codepen.io/idevdi/pen/zYoLpWx

Code HTML:

<div class="ibox">
  <ul class="circles">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    <li></li>
  </ul>
</div>

Code CSS

.ibox {
  background: #4e54c8;
  background: -webkit-linear-gradient(to left, #8f94fb, #4e54c8);
  width: 100%;
  height: 100vh;
}
.circles {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.circles li {
  position: absolute;
  display: block;
  list-style: none;
  width: 20px;
  height: 20px;
  background: rgba(255, 255, 255, 0.2);
  animation: animate 25s linear infinite;
  bottom: -150px;
}
.circles li:nth-child(1) {
  left: 25%;
  width: 80px;
  height: 80px;
  animation-delay: 0s;
}
.circles li:nth-child(2) {
  left: 10%;
  width: 20px;
  height: 20px;
  animation-delay: 2s;
  animation-duration: 12s;
}
.circles li:nth-child(3) {
  left: 70%;
  width: 20px;
  height: 20px;
  animation-delay: 4s;
}
.circles li:nth-child(4) {
  left: 40%;
  width: 60px;
  height: 60px;
  animation-delay: 0s;
  animation-duration: 18s;
}
.circles li:nth-child(5) {
  left: 65%;
  width: 20px;
  height: 20px;
  animation-delay: 0s;
}
.circles li:nth-child(6) {
  left: 75%;
  width: 110px;
  height: 110px;
  animation-delay: 3s;
}
.circles li:nth-child(7) {
  left: 35%;
  width: 150px;
  height: 150px;
  animation-delay: 7s;
}
.circles li:nth-child(8) {
  left: 50%;
  width: 25px;
  height: 25px;
  animation-delay: 15s;
  animation-duration: 45s;
}
.circles li:nth-child(9) {
  left: 20%;
  width: 15px;
  height: 15px;
  animation-delay: 2s;
  animation-duration: 35s;
}
.circles li:nth-child(10) {
  left: 85%;
  width: 150px;
  height: 150px;
  animation-delay: 0s;
  animation-duration: 11s;
}
@keyframes animate {
  0% {
    transform: translateY(0) rotate(0deg);
    opacity: 1;
    border-radius: 0;
  }
  100% {
    transform: translateY(-1000px) rotate(720deg);
    opacity: 0;
    border-radius: 50%;
  }
}

Lưu ý

class .ibox ở ví dụ đoạn code css phía trên có height: 100vh là cao bằng chiều cao của thiết bị. trong bài này mình để nó cao và rộng toàn màn hình. Tuy nhiên trong trường hợp các bạn tùy biến các bạn nhớ thay nó bằng các thông số khác.

Ở trong phạm vi bài viết này mình chỉ chia sẻ code là chính vì nó cũng đơn giản. Tuy nhiên sẽ có nhiều bạn mới không hiểu rõ lắm nên mình sẽ làm một video để giải thích và chia sẻ một vài trường hợp tùy biến, sử dụng đoạn code này trong thực tế.