0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#Руководства</a></p>
1
<p><a>#Руководства</a></p>
2
<ul><li>18 ноя 2019</li>
2
<ul><li>18 ноя 2019</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Примерно за полчаса прямо в браузере мы напишем несколько анимаций и виджет аккордеон.</p>
4
</ul><p>Примерно за полчаса прямо в браузере мы напишем несколько анимаций и виджет аккордеон.</p>
5
<p> vlada_maestro / shutterstock</p>
5
<p> vlada_maestro / shutterstock</p>
6
<p>В бэкграунде - программирование, французский язык, академическое рисование, капоэйра. Сейчас учит финский. Любит путешествия и Балтийское море.</p>
6
<p>В бэкграунде - программирование, французский язык, академическое рисование, капоэйра. Сейчас учит финский. Любит путешествия и Балтийское море.</p>
7
<p>Во-первых, анимация привлекает внимание: вы скорее заметите движущуюся картинку, чем статичную. Во-вторых, делает взаимодействие с сайтом интереснее для пользователя.</p>
7
<p>Во-первых, анимация привлекает внимание: вы скорее заметите движущуюся картинку, чем статичную. Во-вторых, делает взаимодействие с сайтом интереснее для пользователя.</p>
8
<p>Как создать анимацию? Есть язык, который изначально создавался для "оживления" сайтов. Это JavaScript. Именно на нём мы и напишем вместе несколько анимаций. Мы начнём с совсем простых, а закончим одной посложнее и более практически ценной: создадим виджет<em>Accordion</em>(аккордеон). А потом вас ждёт небольшой бонус: сделаем анимацию в CSS3.</p>
8
<p>Как создать анимацию? Есть язык, который изначально создавался для "оживления" сайтов. Это JavaScript. Именно на нём мы и напишем вместе несколько анимаций. Мы начнём с совсем простых, а закончим одной посложнее и более практически ценной: создадим виджет<em>Accordion</em>(аккордеон). А потом вас ждёт небольшой бонус: сделаем анимацию в CSS3.</p>
9
<p>Для работы нам понадобится библиотека jQuery<em>(откуда её взять - расскажем чуть ниже).</em></p>
9
<p>Для работы нам понадобится библиотека jQuery<em>(откуда её взять - расскажем чуть ниже).</em></p>
10
<p>Она используется на большинстве сайтов, потому что у неё много плюсов:</p>
10
<p>Она используется на большинстве сайтов, потому что у неё много плюсов:</p>
11
<ul><li>дружелюбный интерфейс;</li>
11
<ul><li>дружелюбный интерфейс;</li>
12
<li>она решает не только проблему анимаций, но и множество других;</li>
12
<li>она решает не только проблему анимаций, но и множество других;</li>
13
<li>работает на всех браузерах;</li>
13
<li>работает на всех браузерах;</li>
14
<li>к ней много расширений и плагинов;</li>
14
<li>к ней много расширений и плагинов;</li>
15
<li>большое комьюнити (если у вас будут вопросы, то вы быстро найдёте на них ответы).</li>
15
<li>большое комьюнити (если у вас будут вопросы, то вы быстро найдёте на них ответы).</li>
16
</ul><p>Сегодня мы будем работать в онлайн-редакторе CodePen. Для этого не придётся ничего устанавливать, достаточно перейти по ссылке<a>CodePen</a>и нажать на кнопку<strong>Start Coding.</strong>Если у вас уже есть любимый редактор, вы можете использовать его.</p>
16
</ul><p>Сегодня мы будем работать в онлайн-редакторе CodePen. Для этого не придётся ничего устанавливать, достаточно перейти по ссылке<a>CodePen</a>и нажать на кнопку<strong>Start Coding.</strong>Если у вас уже есть любимый редактор, вы можете использовать его.</p>
17
<p>У вас откроется рабочее пространство с тремя колонками: HTML, CSS и JS <em>(JavaScript)</em>:</p>
17
<p>У вас откроется рабочее пространство с тремя колонками: HTML, CSS и JS <em>(JavaScript)</em>:</p>
18
<p>Теперь нажмём шестерёнку возле JS - на экране появится окошко с настройками. Через строку поиска найдём там<em>jQuery</em>:</p>
18
<p>Теперь нажмём шестерёнку возле JS - на экране появится окошко с настройками. Через строку поиска найдём там<em>jQuery</em>:</p>
19
<p>После того как мы выбрали jQuery и закрыли настройки, блок под колонками должен стать белым: там и будут показываться анимации.</p>
19
<p>После того как мы выбрали jQuery и закрыли настройки, блок под колонками должен стать белым: там и будут показываться анимации.</p>
20
<p>Давайте сделаем блок, который будет реагировать на клик. Для этого сначала определим<em>div</em>в окошке HTML.</p>
20
<p>Давайте сделаем блок, который будет реагировать на клик. Для этого сначала определим<em>div</em>в окошке HTML.</p>
21
<p>Что такое<em>div</em>? Это тег, который группирует другие элементы HTML, объединяет несколько объектов - например, блок новостей. Сейчас у нас это будет просто квадрат. Назовём мы его<em>box</em>, а определим вот так:</p>
21
<p>Что такое<em>div</em>? Это тег, который группирует другие элементы HTML, объединяет несколько объектов - например, блок новостей. Сейчас у нас это будет просто квадрат. Назовём мы его<em>box</em>, а определим вот так:</p>
22
<p>Это всё, что нам сейчас нужно от окошка HTML, и мы можем перейти к следующему - CSS. В нём мы опишем, как же будет выглядеть наш<em>div</em>. Пусть это будет красный<em>(red)</em>квадрат со сторонами по 300 пикселей; для этого мы должны задать ширину<em>(width)</em>и высоту<em>(height)</em>такого размера.</p>
22
<p>Это всё, что нам сейчас нужно от окошка HTML, и мы можем перейти к следующему - CSS. В нём мы опишем, как же будет выглядеть наш<em>div</em>. Пусть это будет красный<em>(red)</em>квадрат со сторонами по 300 пикселей; для этого мы должны задать ширину<em>(width)</em>и высоту<em>(height)</em>такого размера.</p>
23
.box { width: 300px; height: 300px; background: red; }<p>Если вам больше нравятся голубые прямоугольники, то просто увеличьте ширину<em>(или высоту)</em>и измените цвет фона<em>(background)</em>на <em>blue</em>.</p>
23
.box { width: 300px; height: 300px; background: red; }<p>Если вам больше нравятся голубые прямоугольники, то просто увеличьте ширину<em>(или высоту)</em>и измените цвет фона<em>(background)</em>на <em>blue</em>.</p>
24
<p>Теперь мы перейдём в столбик<strong>JS</strong>и анимируем наш<em>div</em>.</p>
24
<p>Теперь мы перейдём в столбик<strong>JS</strong>и анимируем наш<em>div</em>.</p>
25
<p>Сначала мы отметим для JavaScript, с каким именно блоком будем работать, а потом - при каком действии будет происходить анимация и какая:</p>
25
<p>Сначала мы отметим для JavaScript, с каким именно блоком будем работать, а потом - при каком действии будет происходить анимация и какая:</p>
26
$(".box").on('click', function(){ });<ul><li><strong>$(".box")</strong>ищет элемент с классом box;</li>
26
$(".box").on('click', function(){ });<ul><li><strong>$(".box")</strong>ищет элемент с классом box;</li>
27
<li><strong>.on ('click'),</strong>определяет, когда произойдёт анимация (в нашем случае - при клике);</li>
27
<li><strong>.on ('click'),</strong>определяет, когда произойдёт анимация (в нашем случае - при клике);</li>
28
<li><strong>function()</strong>описывает саму анимацию - мы напишем эту функцию в фигурных скобках.</li>
28
<li><strong>function()</strong>описывает саму анимацию - мы напишем эту функцию в фигурных скобках.</li>
29
</ul><p><strong>Важный момент:</strong>мы можем нажимать на один объект, а менять другой. Чтобы менять именно тот объект, на который мы кликаем, дальше в функции мы обозначим его как<strong>this.</strong></p>
29
</ul><p><strong>Важный момент:</strong>мы можем нажимать на один объект, а менять другой. Чтобы менять именно тот объект, на который мы кликаем, дальше в функции мы обозначим его как<strong>this.</strong></p>
30
$(".box").on('click', function(){ $(this).hide(); });<p>Мы использовали функцию<strong>hide</strong><strong>(спрятать),</strong>и теперь наш квадрат исчезнет, если на него кликнуть.</p>
30
$(".box").on('click', function(){ $(this).hide(); });<p>Мы использовали функцию<strong>hide</strong><strong>(спрятать),</strong>и теперь наш квадрат исчезнет, если на него кликнуть.</p>
31
<p>Есть ещё пара похожих функций: это<strong></strong><strong>slideUp()</strong><strong></strong>и<strong></strong><strong>fadeOut()</strong>. Во всех случаях наш объект исчезнет. В чём же разница?</p>
31
<p>Есть ещё пара похожих функций: это<strong></strong><strong>slideUp()</strong><strong></strong>и<strong></strong><strong>fadeOut()</strong>. Во всех случаях наш объект исчезнет. В чём же разница?</p>
32
<p>Если мы используем<em>slideUp</em>, то наш квадрат как бы отъедет вверх, а если<em>fadeOut</em>, то выцветет настолько, что станет совсем прозрачным. Можно выбрать тот вариант, который вам нравится.</p>
32
<p>Если мы используем<em>slideUp</em>, то наш квадрат как бы отъедет вверх, а если<em>fadeOut</em>, то выцветет настолько, что станет совсем прозрачным. Можно выбрать тот вариант, который вам нравится.</p>
33
$(".box").on('click', function(){ $(this).slideUp(); });$(".box").on('click', function(){ $(this).fadeOut(); });<p>Чтобы регулировать<strong>время анимации,</strong>напишите его в скобках за функцией, вот так:</p>
33
$(".box").on('click', function(){ $(this).slideUp(); });$(".box").on('click', function(){ $(this).fadeOut(); });<p>Чтобы регулировать<strong>время анимации,</strong>напишите его в скобках за функцией, вот так:</p>
34
<p><strong>ПОМНИТЕ!</strong></p>
34
<p><strong>ПОМНИТЕ!</strong></p>
35
<p><strong>Время в JavaScript указывается в миллисекундах, так что 3000 - это на самом деле всего три секунды.</strong></p>
35
<p><strong>Время в JavaScript указывается в миллисекундах, так что 3000 - это на самом деле всего три секунды.</strong></p>
36
<p>Теперь мы воспользуемся функцией<strong>animate()</strong>, которая даёт больше простора для творчества. В ней вы можете сами определить, как изменятся параметры вашего объекта.</p>
36
<p>Теперь мы воспользуемся функцией<strong>animate()</strong>, которая даёт больше простора для творчества. В ней вы можете сами определить, как изменятся параметры вашего объекта.</p>
37
<p>Например, мы хотим, чтобы при клике наш квадрат расплывался в прямоугольник с шириной 500 пикселей, при этом становился бледнее<em>(в нашем случае - 0,3 от изначальной яркости)</em>, и чтобы всё это длилось четыре секунды.</p>
37
<p>Например, мы хотим, чтобы при клике наш квадрат расплывался в прямоугольник с шириной 500 пикселей, при этом становился бледнее<em>(в нашем случае - 0,3 от изначальной яркости)</em>, и чтобы всё это длилось четыре секунды.</p>
38
<p>Для этого в фигурных скобках за функцией мы зададим ширину<em>(width)</em>500px, а непрозрачность<em>(opacity)</em>- .3. За фигурными скобками напишем время анимации.</p>
38
<p>Для этого в фигурных скобках за функцией мы зададим ширину<em>(width)</em>500px, а непрозрачность<em>(opacity)</em>- .3. За фигурными скобками напишем время анимации.</p>
39
$(".box").on('click', function(){ $(this).animate({ "width": "500px", "opacity": ".3" }, 4000); })<p>Вот и всё!</p>
39
$(".box").on('click', function(){ $(this).animate({ "width": "500px", "opacity": ".3" }, 4000); })<p>Вот и всё!</p>
40
<p>Теперь мы сделаем более практичную вещь -<strong>виджет Accordion (аккордеон).</strong>Вы наверняка с ним уже сталкивались, хотя, может быть, и не слышали этого названия. А оно говорящее - виджет действительно похож на аккордеон: у него есть панельки, которые при нажатии раскладываются и складываются.</p>
40
<p>Теперь мы сделаем более практичную вещь -<strong>виджет Accordion (аккордеон).</strong>Вы наверняка с ним уже сталкивались, хотя, может быть, и не слышали этого названия. А оно говорящее - виджет действительно похож на аккордеон: у него есть панельки, которые при нажатии раскладываются и складываются.</p>
41
<p>Приступим к работе - начнём опять в окошке HTML. Создадим сам аккордеон, а в нём - класс<em>panel</em>, в котором, в свою очередь, будут два класса:<em>panel-header</em>и <em>panel-body</em>. На них мы напишем "HTML" и "helllo". Вам не обязательно писать то же самое, можете написать что угодно. Должно получиться вот так:</p>
41
<p>Приступим к работе - начнём опять в окошке HTML. Создадим сам аккордеон, а в нём - класс<em>panel</em>, в котором, в свою очередь, будут два класса:<em>panel-header</em>и <em>panel-body</em>. На них мы напишем "HTML" и "helllo". Вам не обязательно писать то же самое, можете написать что угодно. Должно получиться вот так:</p>
42
<div class="accordion"> <div class="panel"> <div class="panel-header"> <h1>HTML</h1> </div> <div class="panel-body"> <p>hello</p> </div> </div> </div><p>Сделаем несколько таких панелек. Для этого просто вставим то же самое<em>(div</em> <em>class="panel"</em><em> и всё, что под ним)</em>ещё пару раз. У вас должно получиться вот это:</p>
42
<div class="accordion"> <div class="panel"> <div class="panel-header"> <h1>HTML</h1> </div> <div class="panel-body"> <p>hello</p> </div> </div> </div><p>Сделаем несколько таких панелек. Для этого просто вставим то же самое<em>(div</em> <em>class="panel"</em><em> и всё, что под ним)</em>ещё пару раз. У вас должно получиться вот это:</p>
43
<div class="accordion"> <div class="panel"> <div class="panel-header"> <h1>HTML</h1> </div> <div class="panel-body"> <p>helllo</p> </div> </div> <div class="panel"> <div class="panel-header"> <h1>HTML</h1> </div> <div class="panel-body"> <p>helllo</p> </div> </div> <div class="panel"> <div class="panel-header"> <h1>HTML</h1> </div> <div class="panel-body"> <p>helllo</p> </div> </div> </div><p>Согласитесь, выглядит скудновато? Давайте добавим оформление. Для этого перейдём в окно CSS, определим там размеры нашего аккордеона<em>(width: 450px)</em>и отцентруем его<em>(margin: auto)</em>. Теперь сделаем ему рамочку из чёрной линии в пиксель толщиной<em>(border: 1px solid #222)</em>и отступ текста в пять пикселей<em>(padding: 5px)</em>. Конечно же, вы можете менять размеры и цвета.</p>
43
<div class="accordion"> <div class="panel"> <div class="panel-header"> <h1>HTML</h1> </div> <div class="panel-body"> <p>helllo</p> </div> </div> <div class="panel"> <div class="panel-header"> <h1>HTML</h1> </div> <div class="panel-body"> <p>helllo</p> </div> </div> <div class="panel"> <div class="panel-header"> <h1>HTML</h1> </div> <div class="panel-body"> <p>helllo</p> </div> </div> </div><p>Согласитесь, выглядит скудновато? Давайте добавим оформление. Для этого перейдём в окно CSS, определим там размеры нашего аккордеона<em>(width: 450px)</em>и отцентруем его<em>(margin: auto)</em>. Теперь сделаем ему рамочку из чёрной линии в пиксель толщиной<em>(border: 1px solid #222)</em>и отступ текста в пять пикселей<em>(padding: 5px)</em>. Конечно же, вы можете менять размеры и цвета.</p>
44
.accordion { width: 450px; margin: auto; } .panel { border: 1px solid #222; padding: 5px; }<p>Теперь скроем нижний текст<em>(потом он будет показываться при клике)</em>:</p>
44
.accordion { width: 450px; margin: auto; } .panel { border: 1px solid #222; padding: 5px; }<p>Теперь скроем нижний текст<em>(потом он будет показываться при клике)</em>:</p>
45
.panel-body { display: none; }<p><strong>Напоминаем,</strong>что мы всё ещё работаем в окошке CSS.</p>
45
.panel-body { display: none; }<p><strong>Напоминаем,</strong>что мы всё ещё работаем в окошке CSS.</p>
46
<p>А теперь - вишенка на торте! Сделаем так, чтобы наш заголовок подчёркивался, когда мы наводим на него мышку, а курсор превращался в указатель. Поможет нам в этом селектор<em>hover</em>, который обозначает изменения при наведении курсора:</p>
46
<p>А теперь - вишенка на торте! Сделаем так, чтобы наш заголовок подчёркивался, когда мы наводим на него мышку, а курсор превращался в указатель. Поможет нам в этом селектор<em>hover</em>, который обозначает изменения при наведении курсора:</p>
47
.panel-header h1:hover { text-decoration: underline; cursor: pointer; }<p>С оформлением мы закончили и наконец-то дошли до третьего окошка. По той же схеме, по которой мы заставляли квадрат исчезнуть, теперь заставим появиться наш текст.</p>
47
.panel-header h1:hover { text-decoration: underline; cursor: pointer; }<p>С оформлением мы закончили и наконец-то дошли до третьего окошка. По той же схеме, по которой мы заставляли квадрат исчезнуть, теперь заставим появиться наш текст.</p>
48
<p>Разница в том, что вместо функции<strong>hide</strong>мы в этот раз используем<strong>toggle()</strong> - она позволяет переключать состояния. Например, если бы мы использовали show, текст бы просто показывался, а так он открывается при первом клике, а при втором опять прячется.</p>
48
<p>Разница в том, что вместо функции<strong>hide</strong>мы в этот раз используем<strong>toggle()</strong> - она позволяет переключать состояния. Например, если бы мы использовали show, текст бы просто показывался, а так он открывается при первом клике, а при втором опять прячется.</p>
49
$(".panel-header h1").on('click', function(){ $(".panel-body").toggle(); });<p>Казалось бы, вот и всё, задача выполнена, можно заканчивать? Но всё не так просто. При клике на заголовок открывается не только текст под ним, но и тексты на остальных panel-body, потому что мы не прояснили, какой именно надо показать.</p>
49
$(".panel-header h1").on('click', function(){ $(".panel-body").toggle(); });<p>Казалось бы, вот и всё, задача выполнена, можно заканчивать? Но всё не так просто. При клике на заголовок открывается не только текст под ним, но и тексты на остальных panel-body, потому что мы не прояснили, какой именно надо показать.</p>
50
<p>Как это исправить? Для начала немного разберёмся в отношениях наших заголовков. Они похожи на семью, где есть<strong>родители, дети и братья.</strong>В HTML-коде это хорошо видно, давайте посмотрим:</p>
50
<p>Как это исправить? Для начала немного разберёмся в отношениях наших заголовков. Они похожи на семью, где есть<strong>родители, дети и братья.</strong>В HTML-коде это хорошо видно, давайте посмотрим:</p>
51
<p>Линии красного цвета ведут от родителя к ребёнку, а оранжевые соединяют братьев.</p>
51
<p>Линии красного цвета ведут от родителя к ребёнку, а оранжевые соединяют братьев.</p>
52
<p>Кликаем мы на текст "HTML", родитель<em>(parent)</em>которого -<em>panel-header</em>, а открыть нам надо<em>panel-body</em> - брата<em>panel-header.</em>Чтобы найти родителя, достаточно написать<strong>.parent</strong>, потому что родитель всегда один, зато братьев может быть много, поэтому мы не просто пишем<strong>.siblings,</strong>но и конкретизируем, какой именно<em>(panel-body)</em>.</p>
52
<p>Кликаем мы на текст "HTML", родитель<em>(parent)</em>которого -<em>panel-header</em>, а открыть нам надо<em>panel-body</em> - брата<em>panel-header.</em>Чтобы найти родителя, достаточно написать<strong>.parent</strong>, потому что родитель всегда один, зато братьев может быть много, поэтому мы не просто пишем<strong>.siblings,</strong>но и конкретизируем, какой именно<em>(panel-body)</em>.</p>
53
$(".panel-header h1").on('click', function(){ //$(".panel-body").toggle(); $(this).parent().siblings('.panel-body').toggle(); });<p>Теперь наш виджет открывает только текст под тем заголовком, на который мы кликали. То, что получилось, - это базовая, голая версия. Вы можете улучшать этот виджет, изменять его и, конечно же, красиво оформить.</p>
53
$(".panel-header h1").on('click', function(){ //$(".panel-body").toggle(); $(this).parent().siblings('.panel-body').toggle(); });<p>Теперь наш виджет открывает только текст под тем заголовком, на который мы кликали. То, что получилось, - это базовая, голая версия. Вы можете улучшать этот виджет, изменять его и, конечно же, красиво оформить.</p>
54
<p>В качестве бонуса мы напишем небольшую CSS3-анимацию. Сейчас с помощью CSS можно создать много такого, что раньше можно было сделать только с помощью JavaScript.</p>
54
<p>В качестве бонуса мы напишем небольшую CSS3-анимацию. Сейчас с помощью CSS можно создать много такого, что раньше можно было сделать только с помощью JavaScript.</p>
55
<p>Однако в этот раз триггером для запуска анимации будет не клик, а наведение курсора на объект.</p>
55
<p>Однако в этот раз триггером для запуска анимации будет не клик, а наведение курсора на объект.</p>
56
<p>Начнём мы опять с создания квадрата. Пусть в этот раз он будет зелёный:</p>
56
<p>Начнём мы опять с создания квадрата. Пусть в этот раз он будет зелёный:</p>
57
<p>С <em>hover</em>мы уже знакомы, только добавим команду<strong>border-radius: 50%,</strong>которая превратит наш квадрат в круг:</p>
57
<p>С <em>hover</em>мы уже знакомы, только добавим команду<strong>border-radius: 50%,</strong>которая превратит наш квадрат в круг:</p>
58
.box { width: 250px; height: 250px; background: green; } .box:hover { border-radius: 50%; }<p>Что делать, если мы хотим сделать переход более плавным? Добавим в описание квадрата строчку<em>transition</em>:</p>
58
.box { width: 250px; height: 250px; background: green; } .box:hover { border-radius: 50%; }<p>Что делать, если мы хотим сделать переход более плавным? Добавим в описание квадрата строчку<em>transition</em>:</p>
59
.box { width: 250px; height: 250px; background: green; transition: all .5s; ease 2s; }<ul><li><strong>all</strong>задает параметры, которые мы меняем (ширину, высоту, прозрачность…) - в этом случае мы их не ограничиваем;</li>
59
.box { width: 250px; height: 250px; background: green; transition: all .5s; ease 2s; }<ul><li><strong>all</strong>задает параметры, которые мы меняем (ширину, высоту, прозрачность…) - в этом случае мы их не ограничиваем;</li>
60
<li><strong>.5s</strong>определяет время, которое будет длиться переход (полсекунды);</li>
60
<li><strong>.5s</strong>определяет время, которое будет длиться переход (полсекунды);</li>
61
<li><strong>ease</strong>задаёт амплитуду действия;</li>
61
<li><strong>ease</strong>задаёт амплитуду действия;</li>
62
<li><strong>2s</strong>означает задержку в две секунды.</li>
62
<li><strong>2s</strong>означает задержку в две секунды.</li>
63
</ul><p><strong>ВНИМАНИЕ!</strong></p>
63
</ul><p><strong>ВНИМАНИЕ!</strong></p>
64
<p><strong>В CSS-коде время указывается в секундах!</strong></p>
64
<p><strong>В CSS-коде время указывается в секундах!</strong></p>
65
<p>Строку<em>transition</em>можно написать и в нижнем блоке - тогда параметры, написанные в той строке, будут действовать только при анимациях, за которые отвечает<em>hover</em>. Например, на картинке ниже квадрат секунду подождёт, а потом будет пять секунд округляться. Когда мы отведём мышку, он подождёт две секунды и за полсекунды вернётся в свою привычную квадратную форму.</p>
65
<p>Строку<em>transition</em>можно написать и в нижнем блоке - тогда параметры, написанные в той строке, будут действовать только при анимациях, за которые отвечает<em>hover</em>. Например, на картинке ниже квадрат секунду подождёт, а потом будет пять секунд округляться. Когда мы отведём мышку, он подождёт две секунды и за полсекунды вернётся в свою привычную квадратную форму.</p>
66
.box { width: 250px; height: 250px; background: green; transition: all .5s; ease 2s; } .box:hover { border-radius: 50%; transition: all .5s; ease 1s; }<p>Если вам хочется добавить движение, вы можете заставить квадрат вращаться командой<strong>rotate(360deg).</strong></p>
66
.box { width: 250px; height: 250px; background: green; transition: all .5s; ease 2s; } .box:hover { border-radius: 50%; transition: all .5s; ease 1s; }<p>Если вам хочется добавить движение, вы можете заставить квадрат вращаться командой<strong>rotate(360deg).</strong></p>
67
.box:hover { border-radius: 50%; transform: rotate(360deg); }<p>Вот и всё! Вы попробовали работать с библиотекой jQuery, сделали пару простых анимаций в JavaScript, написали виджет-аккордеон и уловили разницу с созданием анимации в CSS3.</p>
67
.box:hover { border-radius: 50%; transform: rotate(360deg); }<p>Вот и всё! Вы попробовали работать с библиотекой jQuery, сделали пару простых анимаций в JavaScript, написали виджет-аккордеон и уловили разницу с созданием анимации в CSS3.</p>
68
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
68
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>