Web Мастерская
Темы
Блог :: 14 минут назад
Ошибка Uncaught SyntaxError: Failed to execute 'appendChild' on 'Node': Unexpected identifier 'site' возникает, когда JavaScript пытается вставить некий некорректный фрагмент кода в дерево документа, и встречает нечто, что нельзя интерпретировать как действительную инструкцию.
Обычно подобная ошибка проявляется, когда в коде присутствует неприемлемый или поврежденный JavaScript-код, который получается динамически, например, через AJAX-запрос или серверную генерацию.
Открытие вкладки Console в инструментах разработчика (DevTools): Первое, что нужно сделать, — это открыть консоль браузера и изучить детали ошибки. Консоль выдаст всю необходимую информацию, включая имя файла и номер строки, где произошла ошибка.
Определите происхождение JavaScript-кода: Если вы увидели, что ошибка возникает после AJAX-запроса, найдите точку, где этот запрос выполняется, и изучите ответ сервера. Возможно, в ответе содержится повреждённая или небезопасная JavaScript-обёртка.
Выведение тела AJAX-ответа: Используйте инструмент Developer Tools, чтобы отслеживать сетевые запросы и смотреть ответ от сервера. Найдите тот запрос, который вызвал ошибку, и проверьте его тело. Вероятно, там содержится фрагмент JavaScript, который ломает синтаксис.
Проверка серверного кода: Если запрос отправляется на сервер, убедитесь, что сервер возвращает корректный JavaScript-код. Проверьте, нет ли ошибок в формировании данных на сервере, которые могли привести к поломке синтаксиса.
Конт...
Обычно подобная ошибка проявляется, когда в коде присутствует неприемлемый или поврежденный JavaScript-код, который получается динамически, например, через AJAX-запрос или серверную генерацию.
Шаги для нахождения и устранения проблемы
Открытие вкладки Console в инструментах разработчика (DevTools): Первое, что нужно сделать, — это открыть консоль браузера и изучить детали ошибки. Консоль выдаст всю необходимую информацию, включая имя файла и номер строки, где произошла ошибка.
Определите происхождение JavaScript-кода: Если вы увидели, что ошибка возникает после AJAX-запроса, найдите точку, где этот запрос выполняется, и изучите ответ сервера. Возможно, в ответе содержится повреждённая или небезопасная JavaScript-обёртка.
Выведение тела AJAX-ответа: Используйте инструмент Developer Tools, чтобы отслеживать сетевые запросы и смотреть ответ от сервера. Найдите тот запрос, который вызвал ошибку, и проверьте его тело. Вероятно, там содержится фрагмент JavaScript, который ломает синтаксис.
Проверка серверного кода: Если запрос отправляется на сервер, убедитесь, что сервер возвращает корректный JavaScript-код. Проверьте, нет ли ошибок в формировании данных на сервере, которые могли привести к поломке синтаксиса.
Конт...
- Жалоба
Блог :: 22 минуты назад
Сообщение «Cross-site forgery request (CSRF) detected» означает, что система безопасности обнаружила попытку несанкционированного межсайтового запроса (CSRF), и заблокировала его. Такие попытки обычно происходят, когда злоумышленник пытается обмануть пользователя, заставив его совершить нежелательные действия на доверенном сайте путем подделывания запроса с другого домена.
CSRF (cross-site request forgery) — это уязвимость веб-приложений, позволяющая злоумышленнику заставить жертву отправить вредоносный запрос к сайту, которому жертва доверяет. Например, если вы вошли на банковский сайт и открыли другую вкладку с поддельным сайтом, мошенник может попытаться заставить вас выполнить транзакцию или удалить аккаунт на доверенном сайте, используя сессионные куки жертвы.
Существует ряд эффективных мер против атак CSRF:
Что такое CSRF?
CSRF (cross-site request forgery) — это уязвимость веб-приложений, позволяющая злоумышленнику заставить жертву отправить вредоносный запрос к сайту, которому жертва доверяет. Например, если вы вошли на банковский сайт и открыли другую вкладку с поддельным сайтом, мошенник может попытаться заставить вас выполнить транзакцию или удалить аккаунт на доверенном сайте, используя сессионные куки жертвы.
Типичные сценарии атаки CSRF
- Удаление аккаунта или сброс пароля: Жертву заставляют подтвердить сброс пароля или удаление аккаунта через скрытые формы или гиперссылки.
- Перевод денег: Пользователь открывает легитимный сайт банка, после чего переходит на поддельный сайт, который незаметно инициирует платежную транзакцию на счету жертвы.
- Изменение конфиденциальных данных: Незаметные манипуляции с формами или кнопками могут привести к изменению персональных данных или контактной информации.
Как защитить своё приложение от CSRF?
Существует ряд эффективных мер против атак CSRF:
- CSRF-токены: Генерируйте уникальные одноразовые токены для каждой сессии пользователя и проверяйте их на сервере при каждом запросе.
Блог :: 36 минут назад
Такая ошибка обычно возникает, когда вы пытаетесь получить доступ к контенту, который не был закэширован или недоступен в локальном кэше браузера. Эта ситуация характерна для случаев, когда запрашиваемые ресурсы (например, изображения, файлы CSS или JS) находятся на сервере, но не были ранее сохранены в кэше клиента.
Есть несколько возможных причин этой ошибки
- Политика кэширования: Ресурс может быть помечен как не подлежащий кэшированию (например, заголовок
Cache-Control: no-cache). Браузер не сможет сохранить такой ресурс в локальном кэше. - Режим очистки кэша: Если вы недавно очистили кэш браузера, ресурс, который был в нём ранее, перестанет быть доступным из кэша.
- Ошибки сетевого соединения: Иногда ошибки сети или сервера могут помешать успешной передаче ресурса клиенту, что приводит к отказу в доступе к кэшированным материалам.
- Истечение срока действия кэша: Даже если ресурс ранее был закэширован, срок его годности может истечь, и браузер прекратит предоставление его из кэша.
Что можно предпринять для решения проблемы
- Настройки кэширования: Проверьте заголовки HTTP, которыми сопровождается доставка ресурса. Заголовки, такие как Expires, Cache-Control, определяют политику кэширования и сроки хранения данных.
- Повторная передача ресурса: Перезагрузите страницу, нажав комбинацию клавиш Ctrl+F5 (Windows) или Cmd+R (MacOS), чтобы принудительно обновить ресурсы и заново отправить их в кэш.
- Проверьте наличие ресурса на сервере: Убедитесь, что ресурс физически существует на сервере и
Блог :: 15 часов назад
Если вы столкнулись с предупреждением «Synchronous XMLHttpRequest on the main thread is deprecated», это значит, что ваш код совершает синхронные запросы на главную нить браузера. Подобная практика признана устаревшей и не рекомендуется из-за серьёзного негативного влияния на пользовательский опыт.
В этой статье мы расскажем, почему появились такие запросы, каковы последствия их использования и как можно исправить ситуацию.
Синхронный запрос — это когда выполнение программы блокируется до завершения сети. Другими словами, пока запрос не получит ответ от сервера, браузер не сможет продолжать обработку скриптов и реагировать на действия пользователя.
Например, возьмем такой JavaScript-код:
Параметр
Использование синхронных запросов приводит к ряду негативных последствий:
В этой статье мы расскажем, почему появились такие запросы, каковы последствия их использования и как можно исправить ситуацию.
Что такое синхронные запросы?
Синхронный запрос — это когда выполнение программы блокируется до завершения сети. Другими словами, пока запрос не получит ответ от сервера, браузер не сможет продолжать обработку скриптов и реагировать на действия пользователя.
Например, возьмем такой JavaScript-код:
ВыделитьJavaScript
var xhr = new XMLHttpRequest();
xhr.open('GET', '/api/data', false); // Параметр false делает запрос синхронным
xhr.send();
console.log(xhr.responseText);Параметр
false в третьей позиции заставляет запрос ждать завершения передачи данных от сервера, полностью блокируя исполнение других команд до получения ответа.Негативные последствия синхронных запросов
Использование синхронных запросов приводит к ряду негативных последствий:
- Заблокированное взаимодействие: Пользователи не могут нажимать на кнопки, пролистывать страницу или совершать другие действия, пока синхронизированный запрос ждет ответа.
- Потеря производительности: Длительно работающие синхронные запросы способны серьёзно замедлить загрузку страницы и выполнение других задач.
- Устаревший под
Блог :: 08.01.2026 08:41:53 am
Атрибут
Значение по умолчанию (xMidYMid meet)
По умолчанию значение preserveAspectRatio равно "xMidYMid meet". Это значит, что рисунок центрируется горизонтально и вертикально, а также сохраняет своё соотношение сторон путём уменьшения размера, чтобы поместиться целиком в окно просмотра.
Формат значений
Формат значения выглядит следующим образом:
Где:
Выравнивание (<align>)
Выравнивание состоит из двух частей: горизонтального и вертикального положения. Эти части соединяются пробелом и записываются в следующем порядке: сначала горизонтальная позиция, затем вертикальная.
Например, "
preserveAspectRatio используется в SVG (Scalable Vector Graphics) для управления тем, как содержимое рисунка сохраняется относительно своего контейнерного блока при изменении размеров окна просмотра или самого контейнера. Этот атрибут позволяет разработчикам контролировать поведение содержимого SVG при изменениях масштаба, гарантируя сохранение пропорций или центрирование внутри доступной области.Основные компоненты атрибута
Значение по умолчанию (xMidYMid meet)
По умолчанию значение preserveAspectRatio равно "xMidYMid meet". Это значит, что рисунок центрируется горизонтально и вертикально, а также сохраняет своё соотношение сторон путём уменьшения размера, чтобы поместиться целиком в окно просмотра.
Формат значений
Формат значения выглядит следующим образом:
ВыделитьSVG
<preserveAspectRatio-value> = [ <align> || <meetOrSlice> ]Где:
<align>: управляет выравниванием SVG-контента внутри контейнера.<meetOrSlice>: контролирует, должно ли содержание растягиваться ("slice") или уменьшаться ("meet"), чтобы соответствовать доступному пространству.
Возможные значения
Выравнивание (<align>)
Выравнивание состоит из двух частей: горизонтального и вертикального положения. Эти части соединяются пробелом и записываются в следующем порядке: сначала горизонтальная позиция, затем вертикальная.
xMin: Контент выровнен слева.xMid: Центрированное горизонтально.xMax: Контент выровнен справа.YMin: Контент выровнен сверху.YMid: Центрировано вертикально.YMax: Контент выровнен снизу.
Например, "
xM...
Блог :: 03.01.2026 01:22:53 pm
Ошибка TypeError: Cannot read properties of undefined (reading 'trim') возникает, когда вы пытаетесь вызвать метод или прочитать свойство у переменной, которой присвоено значение
Обычно такая ошибка встречается в JavaScript, когда программа ожидает объект или строку, но по факту переменная не была инициализирована или стала неопределённой.
Обращение к свойствам объекта, который не определен
Например, вы вызвали метод
Несуществующие элементы DOM
Если вы пытаетесь манипулировать элементом, который не существует в документе:
Поддержка устаревших версий браузера
Старые версии браузеров могут не поддерживать современные методы или классы. Например, если вы случайно вызываете
Проверяйте существование переменной перед вызовом метода
Используйте оператор...
undefined или null.Обычно такая ошибка встречается в JavaScript, когда программа ожидает объект или строку, но по факту переменная не была инициализирована или стала неопределённой.
Наиболее частые причины появления этой ошибки
Обращение к свойствам объекта, который не определен
Например, вы вызвали метод
.trim() на строке, но строка оказалась равна undefined:
ВыделитьJavaScript
let myVar = undefined;
console.log(myVar.trim()); // Uncaught TypeError: Cannot read properties of undefined (reading 'trim')Несуществующие элементы DOM
Если вы пытаетесь манипулировать элементом, который не существует в документе:
ВыделитьJavaScript
const element = document.querySelector('.nonexistent-class');
console.log(element.textContent.trim()); // Uncaught TypeError: Cannot read properties of null (reading 'trim')Поддержка устаревших версий браузера
Старые версии браузеров могут не поддерживать современные методы или классы. Например, если вы случайно вызываете
.trim() на объектах, которые не поддерживали этот метод ранее.Как исправить данную ошибку
Проверяйте существование переменной перед вызовом метода
ВыделитьJavaScript
let str = someFunctionThatReturnsValue();
if (typeof str === 'string') {
console.log(str.trim());
} else {
console.error('Expected a string but got:', typeof str);
}Используйте оператор...
Блог :: 30.12.2025 06:32:47 am
Зачем заботиться о производительности? Скорость загрузки и реакции страницы напрямую влияет на удобство пользования сайтом и конверсии. Именно поэтому оптимизация — важная составляющая качественного продукта.
...
Кеширование селекторов
- Описание: Многократные поиски элементов в DOM снижают производительность и как избежать этого с помощью кеширования.
- Решение: Показать, как сохранять выборки в переменную и повторно использовать их, снижая число обращений к DOM.
ВыделитьjQuery
// Плохой пример (медленно)
for(let i = 0; i < 100; i++) {
$("#myDiv").addClass("active");
}
// Хороший пример (быстро)
let myDiv = $("#myDiv");
for(let i = 0; i < 100; i++) {
myDiv.addClass("active");
}Делегирование событий
- Описание: Влияние множественного подключения обработчиков событий и как уменьшить накладные расходы с помощью делегирования.
- Решение: Пояснить концепцию делегирования событий и привести примеры эффективного использования.
ВыделитьjQuery
// Плохой пример (каждый item слушает событие)
$(".item").on("click", function() {});
// Хороший пример (делегация)
$("#items-container").on("click", ".item", function() {});Сокращение DOM-взаимодействий
- Описание: Постоянные обращения к DOM приводят к снижению производительности.
- Решение: Демонстрировать, как комбинировать изменения элементов в одной операции, минуя постоянное обращение к DOM.
ВыделитьjQuery
// Медленно
$("#element").addClass("loading");
$("#element").text("Loading...");
// Быстро
$("#element")
Блог :: 29.12.2025 07:38:47 am
jQuery — это библиотека JavaScript, облегчающая работу с Document Object Model (DOM). Она помогает изменять структуру страницы, стилизовать элементы и создавать динамичный пользовательский интерфейс. В этой статье мы рассмотрим полезные техники и примеры для продвинутой работы с DOM.
Создание и добавление элементов
Иногда нужно динамически добавлять элементы на страницу. Сделать это легко с помощью jQuery:
Копирование и перемещение элементов
Часто требуется переместить или скопировать элементы на странице. Вот как это делается:
Удаление элементов
Удалить элементы с помощью jQuery можно несколькими способами:
Установка и чтение атрибутов
Атрибуты элемента можно читать и устанавливать с помощью jQuery:
...
Управление DOM-структурой
Создание и добавление элементов
Иногда нужно динамически добавлять элементы на страницу. Сделать это легко с помощью jQuery:
ВыделитьjQuery
// Создать новый div и добавить его в конец body
$('<div>Новый элемент!</div>').appendTo('body');
// Добавить элемент в начало списка ul
$('<li>Новый пункт списка</li>').prependTo('ul');
// Вставить элемент после другого элемента
$('<button>Нажмите меня</button>').insertAfter('#targetButton');Копирование и перемещение элементов
Часто требуется переместить или скопировать элементы на странице. Вот как это делается:
ВыделитьjQuery
// Копируем элемент и помещаем копию в конец страницы
$('#myDiv').clone().appendTo('body');
// Перемещаем элемент вверх по документу
$('#myDiv').detach().prependTo('body');Удаление элементов
Удалить элементы с помощью jQuery можно несколькими способами:
ВыделитьjQuery
// Удаляет элемент и его детей
$('#oldElement').remove();
// Убирает элемент, но сохраняет его содержимое
$('#outerContainer').empty();Работа с атрибутами и свойствами
Установка и чтение атрибутов
Атрибуты элемента можно читать и устанавливать с помощью jQuery:
ВыделитьjQuery
// Устанавливаем атрибут href у
Блог :: 28.12.2025 09:11:12 pm
Иногда при написании скриптов на jQuery хочется отобрать первые, последние или промежуточные элементы с помощью удобных выражений вроде
jQuery предоставляет ряд специальных фильтров для выбора конкретных элементов из набора:
Псевдоклассы удобно использовать в двух ситуациях:
Непосредственно в селекторе jQuery
Это самый простой и быстрый способ выбора элементов. Просто напиши псевдокласс рядом с основным селектором, и jQuery автоматически подберёт нужный элемент:
Внутри методов jQuery, принимающих селекторы
Часто полезно сочетать псевдоклассы с методами jQuery, такими как
Несмотря на свою полезность, псевдоклассы не всегда применимы. Их нельзя использовать в тех методах jQuery, которые ожидают обычный...
:first, :last, :even, :odd. Однако эти псевдоклассы ведут себя особым образом и могут приводить к неожиданностям, если не соблюдать осторожность.Какие бывают псевдоклассы?
jQuery предоставляет ряд специальных фильтров для выбора конкретных элементов из набора:
:first— выбирает первый элемент из набора.:last— выбирает последний элемент из набора.:even— выбирает элементы с чётными индексами (начиная с нуля).:odd— выбирает элементы с нечётными индексами.:eq(N)— выбирает элемент с номером N (также начинается с нуля).:gt(N)— выбирает элементы с номерами большими, чемN.:lt(N)— выбирает элементы с номерами меньшими, чемN.
Когда использовать псевдоклассы?
Псевдоклассы удобно использовать в двух ситуациях:
Непосредственно в селекторе jQuery
Это самый простой и быстрый способ выбора элементов. Просто напиши псевдокласс рядом с основным селектором, и jQuery автоматически подберёт нужный элемент:
ВыделитьjQuery
$('.item:first').css('background-color', 'yellow');Внутри методов jQuery, принимающих селекторы
Часто полезно сочетать псевдоклассы с методами jQuery, такими как
.find(), .filter() и .not(). Например:
ВыделитьjQuery
$(this).find('li:first').addClass('active');Опасные зоны: Когда псевдоклассы НЕ РАБОТАЮТ?
Несмотря на свою полезность, псевдоклассы не всегда применимы. Их нельзя использовать в тех методах jQuery, которые ожидают обычный...
Блог :: 14.04.2024 05:04:40 pm
Практически каждый, кто хотел заработать на своем сайте, стремился заполучить возможность отображать на страницах своего сайта рекламные блоки AdSense. Ведь это по настоящему самая оплачиваемая реклама. Помню, бывали клики, за которые платили по 1,7 баксов. Сейчас реклама не отображается на территории РФ, по известным всем причинам. Кто-то это переживает, будто расстался со своим любимым человеком. Ладно, давайте не будем о грустном, а лучше повспоминаем, как это было! А было это похоже на то, что Google хотел загнать всех Вебмастеров под каблук.
У данной рекламной сети было огромное количество требований, нарушив, хоть одно из них, можно было получить по шапке. Самое страшное - это быть пойманным за клики по своей рекламе, за что немедленно выдавался пожизненный бан, а заработанные деньги, якобы, возвращались рекламодателям. Этого бана боялись, как огня, абсолютно все. При чем, не важно, кто кликал по твоей рекламе, ты сам или, какой-то школьник из Оренбурга, которого ты даже не знаешь. Вебмастер получив бан за скликивание рекламы, тут же летел на форум поддержки AdSense и писал тысячу сообщений, о том, что он не нарушал правил, что это не он. Ну, кто в это поверит? С тобой даже разговаривать не будут, разве что нахамят. А, ну да, могут сказать, что ты в любом случае виноват сам, если кликал ты, то знал во что залазишь, а если кликал не ты, то вина твоя, что не доглядел, что кто-то тебя скликивает. Подозрительная активность, так сказать. Удобная фишка для тех кому ты не...
У данной рекламной сети было огромное количество требований, нарушив, хоть одно из них, можно было получить по шапке. Самое страшное - это быть пойманным за клики по своей рекламе, за что немедленно выдавался пожизненный бан, а заработанные деньги, якобы, возвращались рекламодателям. Этого бана боялись, как огня, абсолютно все. При чем, не важно, кто кликал по твоей рекламе, ты сам или, какой-то школьник из Оренбурга, которого ты даже не знаешь. Вебмастер получив бан за скликивание рекламы, тут же летел на форум поддержки AdSense и писал тысячу сообщений, о том, что он не нарушал правил, что это не он. Ну, кто в это поверит? С тобой даже разговаривать не будут, разве что нахамят. А, ну да, могут сказать, что ты в любом случае виноват сам, если кликал ты, то знал во что залазишь, а если кликал не ты, то вина твоя, что не доглядел, что кто-то тебя скликивает. Подозрительная активность, так сказать. Удобная фишка для тех кому ты не...
Блог :: 12.12.2025 06:57:55 am
Чтобы отменить свойство
Самый простой способ — это явно указать
Свойство clear позволяет отменить влияние плавающих элементов. Если вы хотите, чтобы следующий элемент не обтекал плавающий элемент, используйте
Если вы хотите отменить плавание для родительского элемента, можно использовать
Если вы хотите отменить плавание и вернуть элемент к нормальному потоку документа, можно использовать
...
float: left / right; в CSS, можно использовать несколько способов.Использовать float: none;
Самый простой способ — это явно указать
float: none; для элемента, чтобы отменить его плавающее положение:
ВыделитьCSS
.element {
float: none;
}Использовать clear: both;
Свойство clear позволяет отменить влияние плавающих элементов. Если вы хотите, чтобы следующий элемент не обтекал плавающий элемент, используйте
clear: both;:
ВыделитьCSS
.element {
clear: both;
}Использовать overflow: hidden; или overflow: auto;
Если вы хотите отменить плавание для родительского элемента, можно использовать
overflow: hidden; или overflow: auto;. Это заставит родительский элемент обрезать плавающие элементы и не позволять им выходить за его пределы:
ВыделитьCSS
.parent-element {
overflow: hidden;
}Использовать display: block; или display: inline-block;
Если вы хотите отменить плавание и вернуть элемент к нормальному потоку документа, можно использовать
display: block; или display: inline-block;:
ВыделитьCSS
.element {
display: block;
}Пример
ВыделитьHTML
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Отмена float</title>
<style>
.float-left {
float: left;
width: 100px;
height: 100px;
background-color: lightblue;
margin: 10px;
}
.no-float {
float: none;
background-color: lightcoral;
}
Блог :: 10.12.2025 07:43:04 am
Scalable Vector Graphics (SVG) — это формат векторной графики, широко используемый в веб-разработке. Одним из мощных инструментов для работы с SVG является JavaScript, который позволяет динамически изменять атрибуты, стили и поведение SVG-элементов.
В этой статье мы рассмотрим основные приемы манипуляции SVG с помощью JavaScript.
Для того чтобы манипулировать SVG-элементами, нужно сначала получить доступ к ним с помощью JavaScript. Вот несколько способов:
Получение элемента по ID:
Получение элементов по классу:
Получение всех элементов SVG:
Один из самых частых способов манипуляции SVG — это изменение атрибутов элементов. Вот несколько примеров:
Изменение цвета заливки и обводки:
Изменение размеров и положения:
Изменение пути (path):
...
В этой статье мы рассмотрим основные приемы манипуляции SVG с помощью JavaScript.
Доступ к SVG-элементам
Для того чтобы манипулировать SVG-элементами, нужно сначала получить доступ к ним с помощью JavaScript. Вот несколько способов:
Получение элемента по ID:
ВыделитьJavaScript
let svgCircle = document.getElementById('myCircle');Получение элементов по классу:
ВыделитьJavaScript
let circles = document.getElementsByClassName('circle');Получение всех элементов SVG:
ВыделитьJavaScript
let svgElements = document.querySelectorAll('svg *');Изменение атрибутов SVG
Один из самых частых способов манипуляции SVG — это изменение атрибутов элементов. Вот несколько примеров:
Изменение цвета заливки и обводки:
ВыделитьJavaScript
let circle = document.getElementById('myCircle');
circle.setAttribute('fill', 'blue');
circle.setAttribute('stroke', 'red');
circle.setAttribute('stroke-width', '2');Изменение размеров и положения:
ВыделитьJavaScript
let rectangle = document.getElementById('myRectangle');
rectangle.setAttribute('width', '100');
rectangle.setAttribute('height', '50');
rectangle.setAttribute('x', '50');
rectangle.setAttribute('y', '50');Изменение пути (path):
ВыделитьJavaScript
let path =
Блог :: 10.12.2025 07:20:05 am
GreenSock Animation Platform (GSAP) — это мощная библиотека для создания качественной анимации в веб-пространстве. Вместе с SVG GSAP позволяет создавать потрясающе выглядящие и интерактивные элементы. В этой статье мы рассмотрим простые и эффективные техники, которые помогут оживить SVG с помощью GSAP.
Что такое GSAP?
GSAP — это высокопроизводительная библиотека для анимации, позволяющая анимировать практически любые CSS-свойства и DOM-элементы. В отличие от CSS-анимации, GSAP предлагает больший контроль и лёгкость управления.
Как подключить GSAP?
Подключить GSAP можно через CDN:
Анимация движения (Motion Path)
GSAP позволяет анимировать путь (motion path) по траектории, заданной в SVG. Это особенно полезно для создания плавных перемещений объектов:
Масштабирование и вращения
Можно легко анимировать масштаб и угол поворота элементов SVG:
...
Введение в GSAP и SVG
Что такое GSAP?
GSAP — это высокопроизводительная библиотека для анимации, позволяющая анимировать практически любые CSS-свойства и DOM-элементы. В отличие от CSS-анимации, GSAP предлагает больший контроль и лёгкость управления.
Как подключить GSAP?
Подключить GSAP можно через CDN:
ВыделитьHTML
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script>Простые техники анимации SVG с GSAP
Анимация движения (Motion Path)
GSAP позволяет анимировать путь (motion path) по траектории, заданной в SVG. Это особенно полезно для создания плавных перемещений объектов:
ВыделитьHTML
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
<path d="M10,10 Q50,90 90,10" id="motion-path" />
<circle cx="10" cy="10" r="5" fill="red" id="ball" />
</svg>ВыделитьJavaScript
gsap.to("#ball", {
duration: 2,
motionPath: "#motion-path",
repeat: -1,
yoyo: true
});Масштабирование и вращения
Можно легко анимировать масштаб и угол поворота элементов SVG:
ВыделитьHTML
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
<rect x="20" y="20" width="60" height="60" fill="blue" id="square" />
</svg>ВыделитьJavaScript
gsap.fro
Блог :: 09.12.2025 06:58:16 pm
Scalable Vector Graphics (SVG) — это технология векторной графики, широко используемая в веб-дизайне для создания иконок, логотипов, диаграмм и анимации. SVG идеально интегрируются с CSS, что позволяет динамически манипулировать их формой, цветом и анимацией.
В этом руководстве мы рассмотрим, как использовать SVG в CSS, и поговорим о базовых приемах работы с SVG.
Что такое SVG? SVG — это XML-формат, который описывает графику в виде вектора. В отличие от растровых изображений (JPEG, PNG), SVG можно масштабировать без потери качества, что делает его идеальным для веб-интерфейсов.
Интеграция SVG в HTML и CSS
SVG можно подключить тремя основными способами:
1. Прямо в HTML:
2. Импорт через CSS:
3. Вставка через
1. Цвет и заливка
Цвет заливки и обводки можно изменить через CSS:
2. Трансформация и анимация
SVG легко поддается трансформации и анимации с помощью CSS:
...
В этом руководстве мы рассмотрим, как использовать SVG в CSS, и поговорим о базовых приемах работы с SVG.
Основы SVG и CSS
Что такое SVG? SVG — это XML-формат, который описывает графику в виде вектора. В отличие от растровых изображений (JPEG, PNG), SVG можно масштабировать без потери качества, что делает его идеальным для веб-интерфейсов.
Интеграция SVG в HTML и CSS
SVG можно подключить тремя основными способами:
1. Прямо в HTML:
ВыделитьHTML
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
<circle cx="50" cy="50" r="40" fill="blue" />
</svg>2. Импорт через CSS:
ВыделитьCSS
.icon {
background-image: url('icon.svg');
width: 50px;
height: 50px;
}3. Вставка через
<object> или <iframe>:
ВыделитьHTML
<object type="image/svg+xml" data="icon.svg" width="50" height="50"></object>Управление SVG через CSS
1. Цвет и заливка
Цвет заливки и обводки можно изменить через CSS:
ВыделитьCSS
.circle {
fill: red; /* Заливка */
stroke: blue; /* Обводка */
stroke-width: 2; /* Толщина обводки */
}2. Трансформация и анимация
SVG легко поддается трансформации и анимации с помощью CSS:
ВыделитьCSS
.rotate-icon {
animation: rotate 2s infinite linear;
}
@keyframes rotate {
from {
Заметка :: 09.12.2025 03:36:11 pm
SWeb: С 29 декабря 2025 года цены на домены и SSL-сертификаты изменятся в связи с увеличением НДС.
С 1 января НДС в России увеличивается до 22%. Мы корректируем цены, чтобы компенсировать рост налоговой нагрузки и продолжать предоставлять качественный сервис.
Что делать:
Продлите домены и SSL в декабре — сохраните текущие цены на год.
С 1 января НДС в России увеличивается до 22%. Мы корректируем цены, чтобы компенсировать рост налоговой нагрузки и продолжать предоставлять качественный сервис.
Что делать:
Продлите домены и SSL в декабре — сохраните текущие цены на год.


