Эта статья участвовала в "Проект «Звезда раскопок»”, чтобы выиграть творческий подарочный пакет и бросить вызов творческим поощрительным деньгам.
Комментарий
- Подарки от счастливого розыгрыша: 100 копий, официально предоставленных Nuggets, включая значки Nuggets, тапочки, кружки, холщовые сумки и т. д., распределенные случайным образом.
- Удачное время розыгрыша: после окончания мероприятия «Звезда эксплуатации» ожидается, что в течение 3 рабочих дней официальный представитель проведет лотерею в области комментариев всех статей мероприятия, соответствующих правилам.
- Метод розыгрыша: официальный случайный розыгрыш Nuggets + ручная проверка
- Содержание комментария: Комментарии, предложения, обсуждения и т. д., относящиеся к содержанию статьи, общие комментарии, такие как «наступление» и «обучение», не могут быть награждены.
предисловие
Чтобы уточнить факт:Загрузка, задействованная в этой серии, собрана и не реализована автором.Эта статья занимается только парсингом CSS. Если вам это не нравится, не распыляйте! ! !.
Ставь лайк и проси бесплатный лайк
Зачем писать такую статью? Когда мы обычно разрабатываем, мы сталкиваемся с загрузкой, то ли в UI-фреймворке, то ли Baidu, а потом CV в проект? Однако, когда вы это осознаете сами, у вас не будет ни малейшего представления. Со временем я стал CV-инженером. В этой статье объясняются идеи различных способов загрузки, надеюсь, каждый сможет их не только использовать, но и писать.Практика приносит истинное знание.
Эта статья только знакомитзагрузка текста загрузка. Другие будут рассмотрены в других статьях.
loader-1
реализовать логику
Присмотритесь: цвет текста меняется снизу вверх. Что-то вроде эффекта водной ряби. Но реализация на самом деле очень проста. Позвольте мне сначала показать вам пример.
div{
font-size:30px;
height:20px;
overflow: hidden;
}
<div>content</div>
Это окончательный эффект: текст появляется только наполовину.Таким образом, идеи каждого выйдут наружу. Разве это не до тех пор, пока есть два перекрывающихся div с красным словом и белым словом. Можно ли добиться такого эффекта, используя анимацию для постепенного уменьшения высоты белого слова div? Да, оно может.
Однако мы можем сделать это только с одним div. :after или :before также могут это сделать.
Как должна быть оформлена анимация, на самом деле довольно просто установить высоту от 100% до 0.
@keyframes loaderHeight {
0% {
height: 100%;
}
100% {
height: 0%;
}
}
полный код
Сначала определите цвет текста с красной основой.
.loader-1 {
font-size: 48px;
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
color: #FF3D00;
letter-spacing: 2px;
position: relative;
}
<span class="loader-1">Loading</span>
Затем используйте :after, чтобы добавить верхний слой.
.loader-1::after {
content: "Loading";
position: absolute;
left: 0;
top: 0;
color: #FFF;
width: 100%;
height: 50%;
overflow: hidden;
animation: loaderHeight 6s linear infinite;
}
Это эффект высоты 50%. С эффектом анимации он был показан в начале.
loader-2
реализовать логику
Самое простое: лаодер-1 снизу вверх, это слева направо, разве это не связано с шириной?
Но здесь есть еще один момент. Это эффект текста. Основной текст затенен. Он выглядит пустым посередине, но это не так, просто цвет фона совпадает с цветом самого текста. Поменял цвет и стало понятно.
Тень текста в CSS называется text-shadow.
text-shadow: 0 0 2px #fff, 0 0 1px #fff, 0 0 1px #fff;
Здесь анимация очень простая, загрузчик-1 управляет высотой, а здесь — шириной.
@keyframes loderWidth {
0% {
width: 0%;
}
100% {
width: 100%;
}
}
полный код
.loader-2{
font-size: 48px;
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
color: #263238;
text-shadow: 0 0 2px #fff, 0 0 1px #fff, 0 0 1px #fff;
letter-spacing: 2px;
position: relative;
}
<span class="loader-2">Loading </span>
.loader-2::after {
content: "Loading";
position: absolute;
left: 0;
top: 0;
color: #FFF;
width: 100%;
height: 100%;
overflow: hidden;
animation: loderWidth 6s linear infinite;
}
loader-3
Это самая креативная текстовая загрузка, которую я когда-либо видел! ! !
реализовать логику
Внимательное наблюдение, есть несколько моментов, на которые следует обратить особое внимание.
- Буква Л, движущаяся заглавная Л, вы считаете угол неестественным, на самом деле буква И вверху не Л, а отдельная, просто на верхнем слое.
- Буква I, внимательно посмотрите на букву I за ней, она динамично меняется, но ее движение — это не все движение, движется только верхняя часть.
- Мяч: Мяч находится в движении.Когда мяч достигает положения буквы, буква будет двигаться.
Наконец я разделил его.
Разложение окончено, давайте изучим, как это сделать. Мы не рассматриваем другие вещи, такие как добавление div, мы просто используем :after и :before для этого. Некоторые люди здесь могут сказать, у вас есть четыре лишних, как добиться только двух меток? Очень просто, сам элемент действительно только один, но элемент может добавить много контента. Такие как границы, тени и тому подобное.
Говоря об этом, есть немного размышлений?Посмотрите, можно ли реализовать 1 и 2 с тенями, а 3 и 4 можно реализовать с после и до.
полный код
Пространство используется здесь, чтобы занять место.
<span class="loader-3">Load ng </span>
.loader-3 {
color: #FFF;
position: relative;
font-family: Arial, Helvetica, sans-serif;
font-size: 48px;
letter-spacing: 4px;
}
ниже до
.loader-3::before {
content: "";
position: absolute;
right: 70px;
bottom: 10px;
height: 28px;
width: 5.15px;
background: currentColor;
animation: loaderL 1s linear infinite alternate;
}
Эффект следующий, видно что 3 получилось, а 1 и 2 не появились, это потому что мы не добавили тени.С этой анимацией мы можем увидеть эффект.
@keyframes loaderL {
0% {
box-shadow: 0 -6px, -122.9px -8px;
}
25%, 75% {
box-shadow: 0 0px, -122.9px -8px;
}
100% {
box-shadow: 0 0px, -122.9px -16px;
}
}
добавить мяч
.loader-3::after {
content: "";
width: 10px;
height: 10px;
position: absolute;
left: 125px;
top: 2px;
border-radius: 50%;
background: red;
animation: animloader113 1s linear infinite alternate;
}
Наконец, добавьте анимацию мяча.
@keyframes animloader113 {
0% {
transform: translate(0px, 0px) scaleX(1);
}
14% {
transform: translate(-12px, -16px) scaleX(1.05);
}
28% {
transform: translate(-27px, -28px) scaleX(1.07);
}
42% {
transform: translate(-46px, -35px) scaleX(1.1);
}
57% {
transform: translate(-70px, -37px) scaleX(1.1);
}
71% {
transform: translate(-94px, -32px) scaleX(1.07);
}
85% {
transform: translate(-111px, -22px) scaleX(1.05);
}
100% {
transform: translate(-125px, -9px) scaleX(1);
}
}
loader-4
реализовать логику
Смотрите внимательно, две точки;
- Текст наклонен в заштрихованном состоянии.
- текст размыт
Перекос в CSS: transform: skew()
Размытие CSS: фильтр размытия по Гауссу: размытие (0px)
полный код
<span class="loader-4">Loading </span>
.loader-119 {
font-size: 48px;
letter-spacing: 2px;
color: #FFF;
animation: loader4 1s ease-in infinite alternate;
}
анимация
@-webkit-keyframes loader4 {
0% {
filter: blur(0px);
transform: skew(0deg);
}
100% {
filter: blur(3px);
transform: skew(-4deg);
}
}