Ответ
- CSS Transitions – простые переходы между состояниями.
.box {
transition: transform 0.3s ease;
}
.box:hover {
transform: scale(1.1);
}
- CSS Animations – ключевые кадры (
@keyframes) для сложных анимаций.
@keyframes slide {
from { transform: translateX(0); }
to { transform: translateX(100px); }
}
.box { animation: slide 2s infinite; }
- JavaScript (requestAnimationFrame) – для полного контроля над анимацией.
function animate() {
element.style.left = (pos += 1) + 'px';
if (pos < 100) requestAnimationFrame(animate);
}
animate();
- Web Animations API – нативный JS-API для сложных анимаций.
element.animate([
{ opacity: 0 },
{ opacity: 1 }
], { duration: 1000 });
- GSAP (GreenSock) – мощная библиотека для продвинутых анимаций.
gsap.to(".box", { x: 100, duration: 1 });
- Canvas/SVG-анимации – для графики и интерактивных элементов.
Выбор зависит от сложности, производительности и требований к кросс-браузерности.
Ответ 18+ 🔞
О, слушай, смотри, вот ты решил оживить свой сайт, чтобы он не был как дохлая рыба на прилавке. Анимации, блядь! Но их же дохуя видов, и каждый норовит тебе мозг выебать по-своему. Давай разберём эту пизду, чтобы ты не облажался.
1. CSS Transitions – для ленивых, но красивых. Это как плавно переключить передачу, а не врубить сцепление в пол. Задал начальное и конечное состояние – браузер сам всё просчитает. Идеально для ховеров, блядь.
.box {
transition: transform 0.3s ease; /* "ease" – это чтоб не как робот */
}
.box:hover {
transform: scale(1.1); /* Чуть-чуть подрос, красавчик */
}
Сука, просто и элегантно. Но если нужно не из точки А в точку Б, а через точку "Ёб твою мать", то это не сработает.
2. CSS Animations – когда тебе уже мало простого перехода.
Тут ты уже режиссёр и сам рисуешь ключевые кадры через @keyframes. Хочешь, чтобы элемент носился по экрану как угорелый – пожалуйста.
@keyframes slide {
from { transform: translateX(0); }
to { transform: translateX(100px); }
}
.box { animation: slide 2s infinite; } /* "infinite" – и будет он скакать, пока вкладку не закроешь */
Мощно, но если нужно динамически менять параметры на лету – готовься к геморрою.
3. JavaScript (requestAnimationFrame) – полный контроль, и мозги набекрень. Это когда ты сам становишься богом анимации. Каждый кадр – твоё творение. Производительность – твоя ответственность, а не браузера.
function animate() {
element.style.left = (pos += 1) + 'px';
if (pos < 100) requestAnimationFrame(animate); /* Рекурсивно вызываем, пока не доедем */
}
animate();
Чувак, это овердохуища власти, но один косяк – и анимация будет тормозить хуже, чем Windows 95.
4. Web Animations API – нативная мощь, но с подводными еблями. Браузеры вроде как договорились и дали нам этот API. Выглядит стрёмно, но потенциально круто.
element.animate([
{ opacity: 0 },
{ opacity: 1 }
], { duration: 1000 });
В теории – будущее. На практике – всегда нужно проверять, не обоссался ли твой браузер на эту фичу.
5. GSAP (GreenSock) – тяжёлая артиллерия.
Это когда CSS-анимаций уже не хватает, а писать свою логику на requestAnimationFrame – себя не уважать. Библиотека, которая сделает всё, что ты захочешь, и даже то, о чём боялся мечтать.
gsap.to(".box", { x: 100, duration: 1 });
Одна строчка, а под капотом – ебать какие оптимизации и кросс-браузерная магия. Но за это нужно платить весом библиотеки, так что не тащи её ради того, чтобы кнопку подёргать.
6. Canvas/SVG-анимации – для художников-мазохистов. Ты хочешь анимировать не просто квадратик, а целую графику, диаграммы, или игру какую-нибудь? Тогда тебе сюда. Это отдельная вселенная, где ты управляешь каждым пикселем. Красиво, сложно, и можно легко выебать производительность в хлам.
Итог, блядь:
Выбирай по задаче, ёпта! Не стреляй из пушки по воробьям. Для плавного появления кнопки хватит transition. Если нужна сложная последовательность – CSS Animations или GSAP. Если пишешь игру или интерактивную хуйню – Canvas или requestAnimationFrame. И всегда смотри на производительность, а то пользователи тебя проклянут.