Создайте фон CSS Fireflies с помощью HTML/CSS
Опубликовано: 20 Февраля, 2023
В этой статье мы увидим, как создать фон CSS Fireflies с помощью HTML и CSS, а также познакомимся с его реализацией на иллюстрации.
Эффект светлячков CSS можно создать, используя анимацию CSS, и мы реализуем 3 анимации для достижения эффекта светлячков. Чтобы создать случайность, мы использовали разные анимации для разных светлячков.
Подход: для создания фона CSS светлячков будет использоваться следующий подход:
- Создайте папку проекта и внутри нее создайте два файла index.html и style.css . Кроме того, свяжите файл CSS с файлом HTML. Затем создайте заголовок, если это необходимо.
- Теперь сделайте « Background-color » тела черным.
- Создайте десять или более тегов <li> под тегом <ul> в HTML. Эти теги <li> будут использоваться как светлячки. Внутри тега <li> оставьте его пустым.
HTML
< ul class = "fireflies" > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > </ ul > |
- В файле CSS мы создадим светлячков. Во-первых, добавьте ” list-style: none; ” на тег <ul> , который удалит маркеры, созданные для неупорядоченного списка.
- Создайте светлячков, добавив CSS в теги <li> . Во-первых, задайте высоту и ширину каждому элементу <li>. Теперь сделайте радиус границы: 50%; », чтобы заставить светлячков кружиться. Теперь, чтобы придать светлячкам эффект свечения, мы будем использовать желтый цвет фона вместе с радиальным градиентом и тенью . и мы должны сделать положение светлячков абсолютным .
CSS
border-radius: 50% ; background-color : rgb ( 255 , 255 , 73 ); background-image : radial-gradient( rgb ( 249 , 206 , 36 ) 5% , rgb ( 254 , 179 , 4 ) 25% , rgb ( 252 , 191 , 7 ) 60% ); box-shadow: 0 0 5px 2px rgb ( 250 , 193 , 93 ), 0 0 20px 10px rgb ( 255 , 228 , 140 ), 0 0 40px 15px rgb ( 255 , 219 , 41 ); height : 5px ; width : 5px ; top : -20px ; position : absolute ; |
- Теперь, чтобы перемещать светлячков случайным образом, нам нужно создать три анимации. Первый будет управлять движением слева направо, второй будет контролировать движение сверху вниз, а последний будет создавать эффект мерцания.
- для создания анимации используйте @keyframes и дайте изменяющееся значение в разное время ( используйте пошаговую анимацию ).
CSS
/* animations */ /* It will create the left right movement */ @keyframes leftright { 0% , 100% { left : 80% ; } 16.666% { left : 95% ; } 33.333% { left : 10% ; } 50% { left : 60% ; } 66.666% { left : 70% ; } 83.333% { left : 5% ; } } /* It will create the up down movement */ @keyframes updown { 0% , 100% { top : 10px ; } 25% { top : 90% ; } 50% { top : 50% ; } 75% { top : 95% ; } } /* It will create the blinking effect */ @keyframes blinking { 0% , 100% { box-shadow: 0 0 5px 2px rgb ( 250 , 193 , 93 ), 0 0 10px 5px rgb ( 255 , 242 , 63 ), 0 0 30px 10px rgb ( 255 , 219 , 41 ); height : 0 ; width : 0 ; } 50% { box-shadow: 0 0 5px 2px rgb ( 250 , 193 , 93 ), 0 0 20px 10px rgb ( 255 , 228 , 140 ), 0 0 40px 15px rgb ( 255 , 219 , 41 ); } 75% { box-shadow: 0 0 0px 0px rgb ( 250 , 193 , 93 ), 0 0 0px 0px rgb ( 255 , 228 , 140 ), 0 0 0px 0px rgb ( 255 , 219 , 41 ); } } |
- Теперь добавьте анимацию в теги <li> и используйте функцию Cubic-Bezier для движения вверх-вниз и влево-вправо, чтобы задать движение кривой Cubic Bezier и установить анимацию в бесконечное состояние.
CSS
animation: leftright 24 s infinite cubic-bezier( 0.39 , 0 , 0.63 , 1 ), updown 8 s infinite 1.25 s cubic-bezier( 0.39 , 0 , 0.63 , 1 ), blinking 3 s infinite; |
- Теперь, чтобы двигать светлячков с разной скоростью, мы должны присвоить разные значения animation-duration , animation-delay и animation-fill-mode . используйте свойства nth-of-type() для выбора другого <li>.
CSS
li:nth-of-type( 1 ) { animation-delay: 1 s; animation-duration: 65 s, 81 s, 0.01 s; animation-fill-mode: backwards, backwards; } |
Пример: этот пример иллюстрирует создание фона светлячков с помощью HTML и CSS.
HTML
<!DOCTYPE html> < html lang = "en" > < head > < meta charset = "UTF-8" > < meta name = "viewport" content=" width = device -width, initial-scale = 1 .0"> < title >GeeksforGeeks</ title > <!-- stylesheets --> < link rel = "stylesheet" href = "style.css" > </ head > < body > <!-- heading --> < header > < h1 class = "heading" >GeeksforGeeks</ h1 > < h3 class = "title" > Fireflies background using HTML/CSS </ h3 > </ header > <!-- fireflies --> < ul class = "fireflies" > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > </ ul > </ body > </ html > |
CSS
@import url ( "https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" ); * { margin : 0 ; padding : 0 ; box-sizing: border-box; font-family : "Poppins" , sans-serif ; } body { background-color : #000000 ; background-image : linear-gradient( bottom , #000058 60% , #000033 40% ); } header { width : 100% ; height : 90px ; position : absolute ; z-index : 100 ; display : flex; flex- direction : column; align-items: center ; justify- content : center ; background-color : #ffffff ; } .heading { color : green ; } .title { font-weight : 400 ; letter-spacing : 1.5px ; } ul.fireflies { list-style : none ; } li { border-radius: 50% ; background-color : rgb ( 255 , 255 , 73 ); background-image : radial-gradient( rgb ( 249 , 206 , 36 ) 5% , rgb ( 254 , 179 , 4 ) 25% , rgb ( 252 , 191 , 7 ) 60% ); box-shadow: 0 0 5px 2px rgb РЕКОМЕНДУЕМЫЕ СТАТЬИ |