Меняем цвет элемента по наведению мышки. Простой пример, простой CSS
В данной статье на примере показано, как сделать на произвольном элементе сайта смену цвета, если на него был наведен курсор мышки.
Делается данная «штука» при помощи стилей CSS, т.е. придется добавить несколько строчек текста в файл стилей шаблона, а так же проявить свои дизайнерские способности. Я подскажу что именно добавить.
Обновлено 17.01.2019
Внимание! Новый апдейт полностью заточенной под SEO + PageSpeed темы для сайта WP Romb — максимально быстро и максимально удобно. Настрой под себя уникальный дизайн за пару минут и собирай тысячи трафика. Всё на русском + обновления + техподдержка.
Давайте сразу для наглядности пример, чтобы поняли о чем речь. Проведите мышкой по пунктам меню:
Как только мышка оказывается наведена на любое поле в списке — происходит смена заднего фона строки, а так же цвет текста/ссылки в названии рубрики сайта.
Вот так выглядит код данного блока:
<div> <a href=»https://mojwp.ru/category/birzi-ssylok»>Биржи ссылок</a> <a href=»https://mojwp.ru/category/plugins»>Все плагины WordPress</a> <a href=»https://mojwp.ru/category/poleznoe»>Всякие полезности</a> <a href=»https://mojwp.ru/category/ukrashenie»>Украшаем сайт</a> <a href=»https://mojwp.ru/category/hak»>Хаки WordPress</a> </div>
<div> <a href=»https://mojwp.ru/category/birzi-ssylok»>Биржи ссылок</a> <a href=»https://mojwp.ru/category/plugins»>Все плагины WordPress</a> <a href=»https://mojwp.ru/category/poleznoe»>Всякие полезности</a> <a href=»https://mojwp.ru/category/ukrashenie»>Украшаем сайт</a> <a href=»https://mojwp.ru/category/hak»>Хаки WordPress</a> </div> |
В моем примере видим что эффект срабатывает на обычной ссылке. Вместо нее может быть контейнер <div>
, <li>
и прочие подходящие теги.
Чтобы сказать браузеру, что эффект нужно выполнять на конкретных ссылках, я взял их в отдельный <div>тут ссылки<div>
. У вас это тоже может быть созданный вами контейнер, или уже готовый (например, виджет в сайдбаре).
Практика
Теперь необходимо задать действие по наведению мышки. Как уже говорилось выше — делаем все при помощи стилей CSS (файл шаблона может называться style.css, css.css, core.css или еще как-то).
.catside a:hover {background: #0078BF; color: #fff;}
.catside a:hover {background: #0078BF; color: #fff;} |
Данной строкой мы указали браузеру менять цвет заднего фона при наведении мышки на синий (#0078BF) и сказали что цвет шрифта должен стать белым (#fff). Сама «штука», позволяющая понять браузеру, что это нужно делать по наведению мышки — псевдокласс hover (о нем можно почитать ЗДЕСЬ).
Чуть понятнее: мы указали что ссылка a
должна находиться внутри контейнера с классом .catside
. Далее мы добавили псевдокласс hover и оформили по правилам CSS.
Послесловие
В данной статье я показал как работает смена цвета элементов на самом обычном примере. Если хотите развиваться далее, то почитайте профильную литературу и справочники по CSS.
Использовать hover можно, практически, для всех элементов на сайте: блоки, текст, ссылки. Проявите немного фантазии и поймете как устроено у вас на сайте подобное. После этого сможете его украсить или сменить частично оформление.
Опять же о показанном примере: в нем не учитываются параметры оформления блока (отступы, размер шрифта, картинка и прочее). Это все можно узнать из моих предыдущих статей на блоге, либо воспользоваться консолью разработчика F12 в вашем браузере (как им пользоваться смотрите видео на моем канале YOUTUBE).
html — изменение цвета svg при наведении
У SVG для покраски строки нужно применять атрибут — stroke:red;
- Ваше правило CSS должно быть таким :
.icon-youtube svg:hover { stroke: red; fill: red; }
.icon-youtube:hover { stroke: red; fill: red; }`
- Проверьте также и удалите, если они есть, атрибуты
fill
,stroke
у иконок в спрайте, так как они имеют наивысший приоритет. - Добавьте во внешнюю таблицу CSS принудительное наследование для атрибутов SVG:
svg path {
stroke:inherit;
stroke-width:inherit;
fill:inherit;
}
Это всё относится, конечно к чистому SVG, а у вас действительно растровая иконка встроенная векторным редактором в SVG.
Выбирайте всегда SVG иконки, которые весят немного. Это верный признак того, что они сделаны профессионально,- патчами, а не лепкой, градиентами, маркерами в векторных редакторах.
Один из полезных ресурсов для выбора SVG иконок
Выше были теория, но практика всегда интересней?
Скачал две иконки svg c ресурса iconmonstr: youtube — 1.8к; facebook — 0.3k
1. Пример закрашивания одной иконки при наведении
svg path { fill:inherit; stroke:inherit; stroke-width:inherit; } .icon-youtube:hover { fill:red; }
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M4.652 0h2.44l.988 3.702.916-3.702h2.454l-1.665 5.505v3.757h-1.431v-3.757l-1.702-5.505zm6.594 2.373c-1.119 0-1.861.74-1.861 1.835v3.349c0 1.204.629 1.831 1.861 1.831 1.022 0 1.826-.683 1.826-1.831v-3.349c0-1.069-.797-1.835-1.826-1.835zm.531 5.127c0 .372-.19.646-.532.646-.351 0-.554-.287-.554-.646v-3.179c0-.374.172-.651.529-.651.39 0 .557.269.557.651v3.179zm4.729-5.07v5.186c-.155.194-.5.512-.747.512-.271 0-.338-.186-.338-.46v-5.238h-1.27v5.71c0 .675.206 1.22.887 1.22.384 0 .918-.2 1.468-.853v.754h2.27v-6.831h-1.27zm2.203 13.858c-.448 0-.541.315-.541.763v.659h2.069v-.66c.001-.44-.092-.762-.528-.762zm-4.703.04c-.084.043-.167.109-.25.198v4.055c.099.106.194.182.287.229.197.1.485.107.619-.067.07-.092.105-.241.105-.449v-3.359c0-.22-.043-.386-.129-.5-.147-.193-.42-.214-.632-.107zm4.827-5.195c-2.604-.177-11.066-.177-13.666 0-2.814.192-3.146 1.892-3.167 6.367.021 4.467.35 6.175 3.167 6.367 2.6.177 11.062.177 13.666 0 2.814-.192 3.146-1.893 3.167-6.367-.021-4.467-.35-6.175-3.167-6.367zm-12.324 10.686h-1.363v-7.54h-1.41v-1.28h5.182v1.28h-1.41v7.54zm4.846 0h-1.21v-.718c-.223.265-.455.467-.696.605-.652.374-1.547.365-1.547-.955v-5.438h2.209v4.988c0 .262.063.438.322.438.236 0 .564-.303.711-.487v-4.939h2.21v6.506zm4.657-1.348c0 .805-.301 1.431-1.106 1.431-.443 0-.812-.162-1.149-.583v.5h-1.221v-8.82h2.221v2.84c.273-.333.644-.608 1.076-.608.886 0 1.18.749 1.18 1.631v3.609zm4.471-1.752h-2.314v1.228c0 .488.042.91.528.91.511 0 .541-.344.541-.91v-.452h2.245v.489c0 1.253-.538 2.013-1.813 2.013-1.155 0-1.746-.842-1.746-2.013v-2.921c0-1.129.746-1.914 1.837-1.914 1.161 0 1.721.738 1.721 1.914v1.656z"/></svg>
2. Пример анимации закрашивания иконок
Добавлен к первому примеру код второй иконки и анимация закрашивания при наведении:
.icon-youtube{
transition: all .5s ease;
}
.icon-youtube:hover {
fill:red;
}
svg path {
fill:inherit;
stroke:inherit;
stroke-width:inherit;
}
.icon-youtube{
transition: all .8s ease;
}
.icon-youtube:hover {
fill:red;
}
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M4.652 0h2.44l.988 3.702.916-3.702h2.454l-1.665 5.505v3.757h-1.431v-3.757l-1.702-5.505zm6.594 2.373c-1.119 0-1.861.74-1.861 1.835v3.349c0 1.204.629 1.831 1.861 1.831 1.022 0 1.826-.683 1.826-1.831v-3.349c0-1.069-.797-1.835-1.826-1.835zm.531 5.127c0 .372-.19.646-.532.646-.351 0-.554-.287-.554-.646v-3.179c0-.374.172-.651.529-.651.39 0 .557.269.557.651v3.179zm4.729-5.07v5.186c-.155.194-.5.512-.747.512-.271 0-.338-.186-.338-.46v-5.238h-1.27v5.71c0 .675.206 1.22.887 1.22.384 0 .918-.2 1.468-.853v.754h2.27v-6.831h-1.27zm2.203 13.858c-.448 0-.541.315-.541.763v.659h2.069v-.66c.001-.44-.092-.762-.528-.762zm-4.703.04c-.084.043-.167.109-.25.198v4.055c.099.106.194.182.287.229.197.1.485.107.619-.067.07-.092.105-.241.105-.449v-3.359c0-.22-.043-.386-.129-.5-.147-.193-.42-.214-.632-.107zm4.827-5.195c-2.604-.177-11.066-.177-13.666 0-2.814.192-3.146 1.892-3.167 6.367.021 4.467.35 6.175 3.167 6.367 2.6.177 11.062.177 13.666 0 2.814-.192 3.146-1.893 3.167-6.367-.021-4.467-.35-6.175-3.167-6.367zm-12.324 10.686h-1.363v-7.54h-1.41v-1.28h5.182v1.28h-1.41v7.54zm4.846 0h-1.21v-.718c-.223.265-.455.467-.696.605-.652.374-1.547.365-1.547-.955v-5.438h2.209v4.988c0 .262.063.438.322.438.236 0 .564-.303.711-.487v-4.939h2.21v6.506zm4.657-1.348c0 .805-.301 1.431-1.106 1.431-.443 0-.812-.162-1.149-.583v.5h-1.221v-8.82h2.221v2.84c.273-.333.644-.608 1.076-.608.886 0 1.18.749 1.18 1.631v3.609zm4.471-1.752h-2.314v1.228c0 .488.042.91.528.91.511 0 .541-.344.541-.91v-.452h2.245v.489c0 1.253-.538 2.013-1.813 2.013-1.155 0-1.746-.842-1.746-2.013v-2.921c0-1.129.746-1.914 1.837-1.914 1.161 0 1.721.738 1.721 1.914v1.656z"/> </svg> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h24c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-3 7h-1.924c-.615 0-1.076.252-1.076.889v1.111h4l-.238 3h-2.762v8h-3v-8h-2v-3h3v-1.923c0-2.022 1.064-3.077 3.461-3.077h3.539v3z"/></svg>
UPD
Ещё пример, как добавлять социальные иконки и изменять цвет при наведении
Эффект подчёркивания при наведении на ссылку
Здравствуйте, дорогие друзья!
В данной статье я покажу вам как сделать плавное подчёркивание ссылки при наведении.
Этот интересный эффект можно использовать как для ссылок, находящихся внутри определённого блока, так и для всех ссылок на сайте. Данный эффект при наведении создаётся при помощи CSS.
Навигация по статье:
И будет он состоять всего из нескольких строчек кода.
Для того чтобы посмотреть как выглядит плавное подчёркивание ссылки при наведении просто наведите курсор на одну из ссылок ниже:
Как создать эффект плавного подчёркивания ссылки при наведении?
Предположим у Вас есть блок с классом «link» и внутри него есть ссылки, для которых нужно применить данный эффект при наведении.
<div> <a href=»#»>Ссылка 1</a> <a href=»#»>Ссылка 2</a> <a href=»#»>Ссылка 3</a> </div>
<div> <a href=»#»>Ссылка 1</a> <a href=»#»>Ссылка 2</a> <a href=»#»>Ссылка 3</a> </div> |
Сначала нам нужно задать для этих ссылок несколько CSS свойств, для того чтобы к ним можно было применить данный эффект при наведении. Я оставила комментарий возле каждого свойства так что вы сможете поменять некоторые параметры, чтобы ссылки лучше подходили под дизайн вашего сайта.
.link a { text-decoration:none; /*Убираем стандартное подчёркивание ссылки если оно ещё не убрано*/ display: inline-block; /*делаем чтобы наша ссылка из строчного элемента превратилась в строчно-блочный*/ line-height: 1; /*Задаём высоту строки (можно в пикселях)*/ color:#2F73B6;/*Задаём цвет ссылки*/ }
.link a { text-decoration:none; /*Убираем стандартное подчёркивание ссылки если оно ещё не убрано*/ display: inline-block; /*делаем чтобы наша ссылка из строчного элемента превратилась в строчно-блочный*/ line-height: 1; /*Задаём высоту строки (можно в пикселях)*/ color:#2F73B6;/*Задаём цвет ссылки*/ } |
Теперь для того чтобы создать плавное подчёркивание ссылки при наведении нам нужно при помощи CSS добавить псевдоэлемент after. Именно этот элемент и будет представлять собой плавно появляющуюся линию подчёркивания. Для него нам нужно прописать следующие свойства:
.link a:after { display: block; /*превращаем его в блочный элемент*/ content: «»; /*контента в данном блоке не будет поэтому в кавычках ничего не ставим*/ height: 3px; /*задаём высоту линии*/ width: 0%; /*задаём начальную ширину элемента (линии)*/ background-color: #225384; /*цвет фона элемента*/ transition: width 0.4s ease-in-out; /*данное свойство отвечает за плавное изменение ширины. Здесь можно задать время анимации в секундах (в данном случае задано 0.4 секунды)*/ }
.link a:after { display: block; /*превращаем его в блочный элемент*/ content: «»; /*контента в данном блоке не будет поэтому в кавычках ничего не ставим*/ height: 3px; /*задаём высоту линии*/ width: 0%; /*задаём начальную ширину элемента (линии)*/ background-color: #225384; /*цвет фона элемента*/ transition: width 0.4s ease-in-out; /*данное свойство отвечает за плавное изменение ширины. Здесь можно задать время анимации в секундах (в данном случае задано 0.4 секунды)*/ } |
И на последнем этапе создания плавного подчёркивания ссылки нужно задать для песевдоэлемента after ширину 100% при наведении, а также при установленном курсоре. В этом нам помогут псевдоклассы :hover и :focus.
Выглядеть это будет так:
.link a:hover:after, .link a:focus:after { width: 100%; }
.link a:hover:after, .link a:focus:after { width: 100%; } |
То есть изначально наш псевлоэлемент имеет ширину 0%, а при наведении она плавно становится 100%.
Также можно сделать так чтобы при наведении на ссылку помимо эффекта плавного подчёркивания происходила также смена цвета ссылки.
Для этого дописываем следующее:
.link a:hover{ color:#225384; }
.link a:hover{ color:#225384; } |
Если вы хотите чтобы данный эффект применялся для всех ссылок на вашем сайте, то вместо «.link a» нужно будет писать «а».
Чтобы не сбивать вас с толку даю весь код вместе. В этом коде эффект плавного подчёркивания применится ко всем ссылкам на сайте:
a { text-decoration:none; /*Убираем стандартное подчёркивание ссылки если оно ещё не убрано*/ display: inline-block; /*делаем чтобы наша ссылка из строчного элемента превратилась в строчно-блочный line-height: 1; /*Задаём высоту строки (можно в пикселях)*/ color:#2F73B6;/*Задаём цвет ссылки*/ } a:after { display: block; /*превращаем его в блочный элемент*/ content: «»; /*контента в данном блоке не будет поэтому в кавычках ничего не ставим*/ height: 3px; /*задаём высоту линии*/ width: 0%; /*задаём начальную ширину элемента (линии)*/ background-color: #225384; /*цвет фона элемента*/ transition: width 0.4s ease-in-out; /*данное свойство отвечает за плавное изменение ширины. Здесь можно задать время анимации в секундах (в данном случае задано 0.4 секунды)*/ } a:hover:after, a:focus:after { width: 100%; } a:hover{ color:#225384; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | a { text-decoration:none; /*Убираем стандартное подчёркивание ссылки если оно ещё не убрано*/ display: inline-block; /*делаем чтобы наша ссылка из строчного элемента превратилась в строчно-блочный line-height: 1; /*Задаём высоту строки (можно в пикселях)*/ color:#2F73B6;/*Задаём цвет ссылки*/ }
a:after { display: block; /*превращаем его в блочный элемент*/ content: «»; /*контента в данном блоке не будет поэтому в кавычках ничего не ставим*/ height: 3px; /*задаём высоту линии*/ width: 0%; /*задаём начальную ширину элемента (линии)*/ background-color: #225384; /*цвет фона элемента*/ transition: width 0.4s ease-in-out; /*данное свойство отвечает за плавное изменение ширины. Здесь можно задать время анимации в секундах (в данном случае задано 0.4 секунды)*/ }
a:hover:after, a:focus:after { width: 100%; }
a:hover{ color:#225384; } |
После добавления данного кода просто сохраняете файл и всё! Всё очень просто не правда ли?! Вот за что я люблю CSS3! С его помощью можно за несколько минут создать очень интересные эффекты и при этом не нужно подключать дополнительных библиотек и т.д.
Куда вставлять весь этот код?
CSS код со всеми прописанными свойствами нужно вставить в CSS файл вашего сайта или вашей темы (если сайт работает на CMS)
Для WordPress этот файл будет находиться по адресу:
wp-content/themes/название темы/style.css
Для Opencart этот файл находится по адресу:
catalog/view/theme/название темы/stylesheet/stylesheet.css
Данный CSS код нужно вносить в самый конец CSS файла.
Надеюсь, что вам понравилась данная статья! Если это так, то я буду очень вам очень признательна, если вы поделитесь ссылкой на неё в соцсетях. Для вам просто нужно нажать на одну из кнопок соцсетей, которые находятся под этой статьей. Так вы поможете мне в развитии моего блога.
На этом у меня всё! Желаю вам успешной реализации данного эффекта у себя на сайте! До встречи в следующих статьях!
С уважением Юлия Гусарь
Плавное изменение картинки при наведении курсора
В данной статья, я приведу пример, как сделать плавное изменение картинки при наведении курсора на чистом CSS и HTML.
В принципе, я просто оставлю код, а вы сможете посмотреть и если у вас будут вопросы, можете задать их в комментариях.
HTML
<div class=ImgField> <img src=»ссылка на картинку 1″/> <img src=»ссылка на картинку 2″/> </div>
<div class=ImgField> <img src=»ссылка на картинку 1″/> <img src=»ссылка на картинку 2″/> </div> |
CSS
.imageFirst,.imageSecond { border:2px solid transparent; margin:0; padding:0; } .imageFirst { opacity:1px; display:block; position:absolute; transition-duration:0.96s; } .imageFirst:hover { opacity:0.00; } div.ImgField { display:inline-block; background-position:center center; background-repeat:no-repeat; margin:0; padding:0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
.imageFirst,.imageSecond { border:2px solid transparent; margin:0; padding:0; }
.imageFirst { opacity:1px; display:block; position:absolute; transition-duration:0.96s; }
.imageFirst:hover { opacity:0.00; } div.ImgField { display:inline-block; background-position:center center; background-repeat:no-repeat; margin:0; padding:0; } |
Пример
Подписывайтесь на нас в соц. сети и на наш канал в telegram
Будьте в курсе новых статей и новостей 😉
CSS3-переходы (свойство transition)
CSS3-переходы позволяют анимировать исходное значение CSS-свойства на новое значение с течением времени, управляя скоростью смены значений свойств. Большинство свойств меняют свои значения за 16 миллисекунд, поэтому рекомендуемое время стандартного перехода — 200ms.
Смена свойств происходит при наступлении определенного события, которое описывается соответствующим псевдоклассом. Чаще всего используется псевдокласс :hover. Данный псевдокласс не работает на мобильных устройствах, таких как iPhone или Android. Универсальным решением, работающим в настольных и мобильных браузерах, будет обработка событий с помощью JavaScript (например, переключение классов при клике).
Переходы применяются ко всем элементам, а также к псевдоэлементам :before и :after. Для задания всех свойств перехода обычно используют краткую запись свойства transition.
CSS3-переходы могут применяться не ко всем свойствам и их значениям. Подробный перечень вы найдёте на этой странице.
Создание плавных изменений свойств элементов
Поддержка браузерами
IE: 10.0
Firefox: 16.0, 4.0 -moz-
Chrome: 26.0, 4.0 -webkit-
Safari: 6.1, 3.1 -webkit-
Opera: 12.1, 11.6 -o-
iOS Safari: 7.1
Opera Mini: —
Android Browser: 4.4, 4.1 -webkit-
Chrome for Android: 44
1. Название свойства transition-property
Содержит название CSS-свойств, к которым будет применен эффект перехода. Значение свойства может содержать как одно свойство, так и список свойств через запятую. При создании перехода можно использовать как начальное, так и конечное состояние элемента. Свойство не наследуется.
Создаваемые эффекты должны быть ненавязчивыми. Не все свойства требуют плавного изменения во времени, что связано с пользовательским опытом. Например, при наведении на ссылку мы хотим видеть мгновенную смену цвета ссылки или цвета и стиля подчёркивания. Поэтому переходы следует использовать для тех свойств, к которым действительно нужно привлечь внимание.
transition-property | |
---|---|
Значения: | |
none | Отсутствие свойства для перехода. |
all | Значение по умолчанию. Применяет эффект перехода ко всем свойствам элемента. |
свойство | Определяет список CSS-свойств, перечисленных через запятую, участвующих в переходе. |
initial | Устанавливает значение свойства в значение по умолчанию. |
inherit | Наследует значение свойства от родительского элемента. |
Синтаксис
div {
width: 100px;
transition-property: width;
}
div:hover {
width: 300px;
}
2. Продолжительность перехода transition-duration
Задаёт промежуток времени, в течение которого должен осуществляться переход. Если разные свойства имеют разные значения для перехода, они указываются через запятую. Если продолжительность перехода не указана, то анимация при смене значений свойств происходить не будет. Свойство не наследуется.
transition-duration | |
---|---|
Значения: | |
время | Время перехода указывается в секундах или миллисекундах, например, 2s или 5ms. |
initial | Устанавливает значение свойства в значение по умолчанию. |
inherit | Наследует значение свойства от родительского элемента. |
Синтаксис
div {
transition-duration: .2s;
}
See the Pen LRpLbk by Elena (@html5book) on CodePen.
3. Функция перехода transition-timing-function
Свойство задаёт временную функцию, которая описывает скорость перехода объекта от одного значения к другому. Если вы определяете более одного перехода для элемент, например, цвет фона элемента и его положение, вы можете использовать разные функции для каждого свойства. Свойство не наследуется.
transition-timing-function | |
---|---|
Значения: | |
ease | Функция по умолчанию, переход начинается медленно, разгоняется быстро и замедляется в конце. Соответствует cubic-bezier(0.25,0.1,0.25,1). |
linear | Переход происходит равномерно на протяжении всего времени, без колебаний в скорости. Соответствует cubic-bezier(0,0,1,1). |
ease-in | Переход начинается медленно, а затем плавно ускоряется в конце. Соответствует cubic-bezier(0.42,0,1,1). |
ease-out | Переход начинается быстро и плавно замедляется в конце. Соответствует cubic-bezier(0,0,0.58,1). |
ease-in-out | Переход медленно начинается и медленно заканчивается. Соответствует cubic-bezier(0.42,0,0.58,1). |
cubic-bezier(x1, y1, x2, y2) | Позволяет вручную установить значения от 0 до 1 для кривой ускорения. На этом сайте вы сможете построить любую траекторию перехода. |
initial | Устанавливает значение свойства в значение по умолчанию. |
inherit | Наследует значение свойства от родительского элемента. |
Синтаксис
div {
transition-timing-function: linear;
}
See the Pen CSS Timing Function by Elena Nazarova (@nazarelen) on CodePen.
Для создания более реалистичных анимаций используйте функцию cubic Bézier:
Рис. 1. Пользовательские функции cubic Bézier с сайта easings.netПользовательское название | Значение функции |
---|---|
easeInSine | cubic-bezier(0.47, 0, 0.745, 0.715) |
easeOutSine | cubic-bezier(0.39, 0.575, 0.565, 1) |
easeInOutSine | cubic-bezier(0.445, 0.05, 0.55, 0.95) |
easeInQuad | cubic-bezier(0.55, 0.085, 0.68, 0.53) |
easeOutQuad | cubic-bezier(0.25, 0.46, 0.45, 0.94) |
easeInOutQuad | cubic-bezier(0.455, 0.03, 0.515, 0.955) |
easeInCubic | cubic-bezier(0.55, 0.055, 0.675, 0.19) |
easeOutCubic | cubic-bezier(0.215, 0.61, 0.355, 1) |
easeInOutCubic | cubic-bezier(0.645, 0.045, 0.355, 1) |
easeInQuart | cubic-bezier(0.895, 0.03, 0.685, 0.22) |
easeOutQuart | cubic-bezier(0.165, 0.84, 0.44, 1) |
easeInOutQuart | cubic-bezier(0.77, 0, 0.175, 1) |
easeInQuint | cubic-bezier(0.755, 0.05, 0.855, 0.06) |
easeOutQuint | cubic-bezier(0.23, 1, 0.32, 1) |
easeInOutQuint | cubic-bezier(0.86, 0, 0.07, 1) |
easeInExpo | cubic-bezier(0.95, 0.05, 0.795, 0.035) |
easeOutExpo | cubic-bezier(0.19, 1, 0.22, 1) |
easeInOutExpo | cubic-bezier(1, 0, 0, 1) |
easeInCirc | cubic-bezier(0.6, 0.04, 0.98, 0.335) |
easeOutCirc | cubic-bezier(0.075, 0.82, 0.165, 1) |
easeInOutCirc | cubic-bezier(0.785, 0.135, 0.15, 0.86) |
easeInBack | cubic-bezier(0.6, -0.28, 0.735, 0.045) |
easeOutBack | cubic-bezier(0.175, 0.885, 0.32, 1.275) |
easeInOutBack | cubic-bezier(0.68, -0.55, 0.265, 1.55) |
4. Задержка перехода transition-delay
Необязательное свойство, позволяет сделать так, чтобы изменение свойства происходило не моментально, а с некоторой задержкой. Не наследуется.
transition-delay | |
---|---|
Значения: | |
время | Время задержки перехода указывается в секундах или миллисекундах. |
initial | Устанавливает значение свойства в значение по умолчанию. |
inherit | Наследует значение свойства от родительского элемента. |
Синтаксис
div {
transition-delay: .5s;
}
See the Pen wzKZoj by Elena (@html5book) on CodePen.
5. Краткая запись перехода
Все свойства, отвечающие за изменение внешнего вида элемента, можно объединить в одно свойство transition
transition: transition-property transition-duration transition-timing-function transition-delay;
Если воспользоваться значениями по умолчанию, то запись
div {transition: 1s;}
будет эквивалентна
div {transition: all 1s ease 0s;}
6. Плавный переход нескольких свойств
Для элемента можно задать несколько последовательных переходов, перечислив их через запятую. Каждый переход можно оформить своей временной функцией.
div {transition: background 0.3s ease, color 0.2s linear;}
или
div {
transition-property: height, width, background-color;
transition-duration: 3s;
transition-timing-function: ease-in, ease, linear;
}
7. Примеры переходов для различных свойств
Наведите курсором мыши на блоки, чтобы увидеть свойства в действии.
See the Pen gbLXYK by HeleN (@nazarelen) on CodePen.
Плавное подчёркивание ссылки при наведении
Плавное подчёркивание ссылки при наведении
Сегодня мы анонсируем новую серию статей, в которой мы покажем вам, как можно быстро и без особых усилий «прокачать» ваш сайт. Мы будем выкладывать маленькие кусочки кода(сниппеты), которые будут работать сразу после того, как вы вставите их в ваш файл стилей.
В этой статье мы расскажем вам как добиться такого эффекта, как плавное подчеркивание ссылки при наведении css средствами. Выглядеть это будет так:a {
position: relative;
color: #00a650;
cursor: pointer;
line-height: 1;
text-decoration: none;
}
a:after {
display: block;
position: absolute;
left: 0;
width: 0;
height: 2px;
background-color: #00a650;
content: "";
transition: width 0.3s ease-out;
}
a:hover:after,
a:focus:after {
width: 100%;
}
Плавное подчёркивание ссылки справа налево при наведении
достаточно изменить left:0 на right:0;
Применяем плавное подчеркивание ссылок при наведении к нашему стандартному шаблону.
Делаем это из административной панели:
- Открываем настройки
- Выбираем шаблон
- Открываем Style.css
- В самый конец кода добавляем
.bottom-bar .main-menu .mg-menu li .submenu li a {
position: relative;
color: #00a650;
cursor: pointer;
line-height: 1;
text-decoration: none;
}
.bottom-bar .main-menu .mg-menu li .submenu li a:after {
display: block;
position: absolute;
left: 0;
width: 0;
height: 2px;
background-color: #00a650;
content: "";
transition: width 0.3s ease-out;
}
.bottom-bar .main-menu .mg-menu li .submenu li a:focus:after,
.bottom-bar .main-menu .mg-menu li .submenu li a:hover:after{
width: 100%;
}
Вот вы и узнали как добится плавного подчеркивания ссылки при наведении на ссылку. Если у вас появятся какие-либо вопросы — пишите в комментариях.Создайте свои интернет-магазин в два клика!
Использование CSS переходов — CSS
Experimental
Это экспериментальная технология
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.
CSS transitions предоставляют способ контролировать скорость анимации, при изменении CSS свойств. Вместо того, чтобы свойство применилось сразу, вы можете сделать это действие происходящим в течение какого-то момента времени. Например, если вы смените цвет элемента с белого на чёрный, изменение произойдёт моментально, а вот с CSS transitions, измения произойдут за временные интервалы, следующих кривой ускорения, все из которых могут быть настроены.
Анимации, составляющие переход между двумя состояниями, часто называют неявными переходами, так как промежуточные состояния в период между начальным и конечным состоянием неявно определяются браузером.
CSS переходы позволяют вам решить какие свойства нужно анимировать (перечислением их явно), когда анимация начнётся (установкой задержки), как долго переход будет выполняться (установкой продолжительности), а также как она будет запущена (определением функции по времени, например линейно или быстро в начале, медленно в конце).
Замечание: CSS переходы могут использоваться без префиксов, однако спецификация только недавно достигла стабильности, префиксы по-прежнему необходимы для браузеров на WebKit. Они также необходимы для поддержки старых версий браузеров (таких как: Firefox 15, Opera 12 и более ранних). Таблица совместимости приведена внизу страницы с ещё большим количеством информации.
Разработчик может определить какое свойство и как анимировать. Это позволяет создавать сложные переходы. Так как некоторые свойства не имеет смысла анимировать, перечень доступных для анимирования свойств ограничен определенным набором.
Замечание: Перечень анимируемых свойств может меняться по мере изменения спецификации.
Значение свойства auto
является сложным случаем. Спецификация не рекомендует анимировать в значение auto
и из значения auto
. Браузеры, основанные на Gecko, исполняют это требование в точности, а основанные на WebKit не так строго. Использование переходов с auto
следует избегать, так как это может привести к непредсказуемым результатам, в зависимости от браузера и его версии.
Необходимо также соблюдать осторожность при использовании переходов сразу после добавления элемента в DOM с помощью .appendChild()
или удаления его display: none; свойства
. Это выглядит, как будто никогда не происходило начальное состояние, а элемент всегда был в конечном состоянии. Самый простой способ преодолеть это ограничение — применить window.setTimeout()
c некоторым количеством миллисекунд до изменения CSS свойства, которое вы собираетесь анимировать.
Пример анимирования нескольких свойств
HTML
<body>
<p>К блоку ниже применятся анимации для свойств: width, height, background-color, transform. Наведите на него, чтоб увидеть, как они анимируются</p>
<div></div>
</body>
CSS
.box {
border-style: solid;
border-width: 1px;
display: block;
width: 100px;
height: 100px;
background-color: #0000FF;
-webkit-transition: width 2s, height 2s, background-color 2s, -webkit-transform 2s;
transition: width 2s, height 2s, background-color 2s, transform 2s;
}
.box:hover {
background-color: #FFCCCC;
width: 200px;
height: 200px;
-webkit-transform: rotate(180deg);
transform: rotate(180deg);
}
CSS переходы контролируются свойством transition
. Это лучший способ их настроить, позволяет избежать длинных свойств и их несоответствий, которые могут сделать отладку CSS долгой.
Можно контролировать определенные параметры перехода следующими подсвойствами:
(Заметьте, что циклы переходов бесконечны только для наших примеров; CSS transition
s только анимируют смену свойства. Если вам нужно визуализировать этот цикл, обратите внимание на свойство animation
.)
transition-property
- Указывает имя или имена свойств, чьи переходы должны анимироваться. Только свойства, указанные здесь, анимируются в переходах; изменение других свойств будет происходить обычным образом.
transition-duration
- Определяет время происхождения перехода. Можно указать время анимирования всех свойств перехода сразу или для каждого свойства в отдельности.
transition-duration: 0.5s
transition-timing-function
- Определяет функцию, указывающую, как вычисляются промежуточные значения свойств. Вы также можете выбрать ослабления от функции замедления Шпаргалка.Большинство функций времени может быть определено графиком соответствующей функции, образующей четырьмя точками кривую Безье. Также можете выбрать функцию отсюда Easing Functions Cheat Sheet.
transition-timing-function: ease
transition-timing-function: linear
transition-timing-function: step-end
transition-timing-function: steps(4, end)
transition-delay
- Определяет как много должно пройти времени, перед тем как начнётся переход.
Короткая запись синтаксиса:
div {
transition: <property> <duration> <timing-function> <delay>;
}
Есть событие, срабатывающее, когда переход завершен. Во всех браузерах, совместимых со стандартами, есть событие transitionend
, в WebKit есть webkitTransitionEnd
. Смотрите таблицу поддержки браузерами для дополнительной информации. У transitionend
есть 2 свойства:
propertyName
- Строка, показывающая изменение какого свойства завершено.
elapsedTime
- Число с точкой, какое количество времени переход выполнялся, до того как запустилось событие. Это значение не равно свойству
transition-delay
.
Как обычно, используйте метод element.addEventListener()
, чтобы следить за этим событием:
el.addEventListener("transitionend", updateTransition, true);
Замечание: Событие transitionend
не произойдёт, когда переход был прерван до его завершения, например, если установили display
: none
или значение анимируемого свойства изменилось.
Если любой список свойств короче, чем другие, его значения повторяюся, чтобы сделать его длину как и у других. Например:
div {
transition-property: opacity, left, top, height;
transition-duration: 3s, 5s;
}
Это рассматривается, как если бы это было:
div {
transition-property: opacity, left, top, height;
transition-duration: 3s, 5s, 3s, 5s;
}
Похожим образом, если какой-то список свойств длиннее, чем у transition-property
, он обрезается:
div {
transition-property: opacity, left;
transition-duration: 3s, 5s, 2s, 1s;
}
Будет интерпретировано как:
div {
transition-property: opacity, left;
transition-duration: 3s, 5s;
}
Пример 4 секунды выполняет плавное измение шрифта за 2 секунды, после того как пользователь навел мышь на элемент:
#delay1 {
position: relative;
transition-property: font-size;
transition-duration: 4s;
transition-delay: 2s;
font-size: 14px;
}
#delay1:hover {
transition-property: font-size;
transition-duration: 4s;
transition-delay: 2s;
font-size: 36px;
}
Они часто используются для подсвечения элементов в меню при наведении мыши. С помощью переходов легко сделать такой эффект более привлекательным.
Перед тем, как вы посмотрите на код, возможно захотите посмотреть на живое демо (считаем, что ваш браузер поддерживает переходы). Также можеть посмотреть на CSS, используемый этим примером.
Сначала зададим меню в HTML:
<div>
<p><a href="home">Home</a></p>
<p><a href="about">About</a></p>
<p><a href="contact">Contact Us</a></p>
<p><a href="links">Links</a></p>
</div>
Теперь напишем CSS для нашего меню:
.menuButton {
position: relative;
transition-property: background-color, color;
transition-duration: 1s;
transition-timing-function: ease-out;
text-align: left;
background-color: grey;
left: 5px;
top: 5px;
height: 26px;
color: white;
border-color: black;
font-family: sans-serif;
font-size: 20px;
text-decoration: none;
box-shadow: 2px 2px 1px black;
padding: 2px 4px;
border: solid 1px black;
}
.menuButton:hover {
position: relative;
transition-property: background-color, color;
transition-duration: 1s;
transition-timing-function: ease-out;
background-color:white;
color:black;
box-shadow: 2px 2px 1px black;
}
Этот CSS устанавливает внешний вид меню, с фоном и цветом текста, изменяющимися при наведении (:hover
).
Вместо описания эффекта можете посмотреть на живой пример, если ваш браузер поддерживает переходы.
Переходы — крутая вещь, чтоб сделать вид вещей плавней, без надобности что-то делать в вашей JS функциональности. Зацените следующий пример:
<p>Кликните куда-нибудь, чтобы подвинуть шар</p>
<div></div>
Используя JavaScript, добиваемся эффекта перемещения шара на определенную позицию:
var f = document.getElementById('foo');
document.addEventListener('click', function(ev){
f.style.transform = 'translateY('+(ev.clientY-25)+'px)';
f.style.transform += 'translateX('+(ev.clientX-25)+'px)';
},false);
C помощью CSS сглаживаем эффект без дополнительных усилий. Просто добавляем переход и любое измение свойств происходит плавно:
p {
padding-left: 60px;
}
#foo {
border-radius: 50px;
width: 50px;
height: 50px;
background: #c00;
position: absolute;
top: 0;
left: 0;
transition: transform 1s;
}
Можете поиграть с этим здесь: http://jsfiddle.net/9h361pzo/291/
Спецификация | Статус | Комментарий |
---|---|---|
CSS Transitions | Рабочий черновик | Изначальное определение |
Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Базовая поддержка | 1.0 -webkit 26.0 | 4.0 (2.0) -moz 16.0 (16.0) | 10 | 10.5 -o 12.10 | 3.2 -webkit |
Событие transitionend | 1.0[1] 26.0 | 4.0 (2.0) | 10 | 10.5[2] 12 12.10 | 3.2[1] 6.0 |
Возможность | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Базовая поддержка | 2.1 | 4.0 (2.0) -moz 16.0 (16.0) | 10 | 10 -o 12.10 | 3.2 |
Событие transitionend | 2.1[1] | 4.0 (2.0) | 10 | 10[2] 12 12.10 | 3.2[1] |
[1] Chrome 1.0, WebKit 3.2 и Android 2.1 выполняют нестрандартное событие webkitTransitionEnd
. Chrome 26.0 и WebKit 6.0 придерживаются стандарта transitionend
.
[2] Opera 10.5 и Opera Mobile 10 поддерживают oTransitionEnd
, версия 12 понимает otransitionend, а
версия 12.10 знает стандарт transitionend
.
переход-задержка | CSS-уловки
Свойство transition-delay
, обычно используемое как часть сокращения transition
, используется для определения времени задержки начала перехода.
.delay-me {
задержка перехода: 0,25 с;
}
Значение может быть одним из следующих:
- Допустимое значение времени, определенное в секундах или миллисекундах, например
1,3 с
или125 мс
- Список значений времени, разделенных запятыми, для определения отдельных значений задержки при нескольких переходах для одного элемента e.грамм.
1 с, цвет фона, преобразование 350 мс
Значение по умолчанию для transition-delay
— 0s
, что означает, что задержки не будет и переход начнется немедленно. Значение времени может быть выражено в виде десятичного числа для более точного отсчета времени.
Когда переход имеет отрицательное значение задержки, это вызывает немедленное начало перехода (без задержки), однако переход начнется в середине процесса, как если бы он уже начался.
Следующее перо показывает эффект наведения на поле, которое использует значение задержки перехода
, равное 2 с
с длительностью перехода 1 с
:
См. Демонстрацию задержки перехода Pen
от CSS-Tricks (@ css-tricks)
на CodePen.
Теперь сравните это со следующей демонстрацией, которая имеет задержку –1 с
и длительность 3 с
:
См. Демонстрацию Pen
Negative transition delay от CSS-Tricks (@ css-tricks)
на CodePen.
Обратите внимание, что во втором примере видны только последние две трети фактического перехода и нет задержки. Отрицательное значение удаляет задержку и эффективно сокращает продолжительность.
Для совместимости со всеми поддерживаемыми браузерами требуются префиксы поставщиков, при этом стандартный синтаксис объявлен последним:
.example {
-webkit-transition-delay: 500 мс;
-moz-transition-delay: 500 мс;
-o-transition-delay: 500 мс;
задержка перехода: 500 мс;
}
IE10 (первая стабильная версия IE с поддержкой transition-delay
) не требует префикса -ms-
.
Обычный вариант использования — ступенчатые переходы:
Смотрите Pen
Staggered Animations Криса Койера (@chriscoyier)
на CodePen.
Сопутствующие объекты
Другие ресурсы
Поддержка браузера
Desktop
Chrome | Firefox | IE | Edge | Safari |
---|---|---|---|---|
4 * | 5 * | 10 | 12 | 5.1 * |
Мобильный / планшет
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 2,1 * | 6,0-6,1 * |
переход-собственность | CSS-уловки
Свойство transition-property
, обычно используемое как часть сокращения transition
, используется для определения того, к какому свойству или свойствам вы хотите применить эффект перехода.
Это делается путем предоставления имени свойства в качестве значения:
.example {
свойство-переход: цвет;
}
Значение может быть одним из следующих:
- Одно имя свойства, как в примере выше
- Список имен свойств, разделенных запятыми (сокращенное или полное), для перехода нескольких свойств в один элемент
- Ключевое слово
none
, которое указывает, что никакое свойство не будет переходить - Ключевое слово
все
, которое указывает, что все свойства будут переходить (по умолчанию)
Когда значения разделяются запятыми, имена свойств по существу сопоставляются с другими определенными свойствами перехода ( transition-time-function
, transition-duration
, and transition-delay
).Таким образом, это означает, что если список свойств, разделенных запятыми, включает в себя одно или несколько недопустимых имен свойств, другие свойства все равно будут переходить и будут отображаться на их предполагаемые связанные свойства перехода.
Спецификация описывает это следующим образом:
«[Не] распознанные или неанимируемые свойства должны храниться в списке, чтобы сохранить соответствие индексов».
При использовании значения none
или универсальных ключевых слов inherit
или initial
, эти значения нельзя использовать как часть списка, разделенного запятыми, иначе это приведет к синтаксической ошибке и вся строка будет проигнорирована .
Для совместимости со всеми поддерживаемыми браузерами требуются префиксы поставщиков, при этом стандартный синтаксис объявлен последним:
.example {
-webkit-transition-свойство: цвет;
-moz-transition-property: цвет;
-o-свойство-перехода: цвет;
свойство-переход: цвет;
}
IE10 (первая стабильная версия IE, поддерживающая свойство перехода
) не требует префикса -ms-
.
Сопутствующие объекты
Другие ресурсы
Поддержка браузера
Хром | Safari | Firefox | Opera | IE | Android | iOS |
---|---|---|---|---|---|---|
Завод | Работы | 4+ | 10.5+ | 10+ | 2.1+ | 3,2+ |
Мягкая цветная анимация при наведении курсора на ссылку с помощью CSS
Часто вы сталкиваетесь с сайтами, на которых при наведении курсора на ссылку вы обнаружите, что мягкая цветная анимация меняет цвет ссылки. При наведении ссылки цвет ссылки на короткое время изменится на другой, а не изменится сразу. Такая мягкая анимация намного успокаивает, чем мгновенное переключение цвета, которое выглядит резким для глаз.
Например, в теме, которую я создал для Super Dev Resources, я использовал эту мягкую цветную анимацию для изменения цвета заголовка сообщения при наведении курсора на ссылку.
CSS Цветовой переход при наведении курсора на ссылку
Для создания таких эффектов не требуется JavaScript. Простой переход CSS, определенный для цвета при наведении ссылки, будет производить эту мягкую анимацию. Вот фрагмент CSS, который я использую для их определения в своих веб-проектах.
а { цвет: # 16a085; -webkit-transition: цвет .5s линейный; -moz-переход: цвет.5с линейный; -ms-переход: цветной .5s линейный; -o-переход: цветной .5s линейный; переход: цветной .5s линейный; } a: hover {цвет: # e74c3c; }
Делая это, мы говорим браузеру изменить цвет ссылки с Green sea # 16a085 на Alizarin # e74c3c, постепенно (линейно) в течение 0,5 секунды. Вы можете поиграть со значением времени, чтобы достичь желаемого эффекта, однако я рекомендую не делать это слишком медленно.
Вы можете увидеть этот код в действии во вставке пера кода ниже.Обратите внимание, что я использовал отдельный CSS-класс «soft-link», чтобы показать разницу между наведением ссылки по умолчанию и эффектом наведения ссылки с примененным переходом.
См. Мягкую цветную анимацию Pen при наведении ссылки, автор Канишк Кунал на CodePen.0
Подобно применению эффектов перехода к цветам при наведении ссылки, вы можете применить их и к другим атрибутам, например к цвету фона. Если вы хотите еще больше оживить эффекты наведения ссылки, я рекомендую проверить эти эффекты Creative Link на Codrops.
Как изменить цвет кнопки при наведении курсора с помощью CSS
Каждый элемент на веб-сайте считается важным с точки зрения взаимодействия с пользователем. Кроме того, представление веб-сайта — это еще один фактор, который оказывает значительное влияние на пользователей. Вот почему кнопки и другие интерактивные элементы должны быть удобными и красивыми.
Изменение цвета кнопок при наведении курсора выглядит впечатляюще и выглядит более престижно, чем одноцветные кнопки. Итак, здесь мы собираемся обсудить, как изменить цвет фона кнопки с помощью простого CSS.Мы также должны выбрать цвет кнопки, соответствующий цвету нашего веб-сайта. Более того, цвет должен быть материальным, чтобы он выглядел элегантно для наших пользователей.
Изменение цвета фона кнопки при наведении курсора с помощью CSS
У нас есть атрибут : hover для управления событиями наведения курсора на элементы HTML через CSS.
Синтаксис
.class \ _name: hover {
/ * Строки CSS * /
}
Пример 1
Изменить цвет кнопки при наведении курсора с помощью CSS - errorsea
<стиль>.myButton {padding: 10px 20px; цвет фона: # 1E88E5; граница: 0px; цвет: #fff; } .myButton: hover {background-color: #fff; граница: 1px solid # 1E88E5; цвет: # 1E88E5; }
Мы также можем добавить некоторые эффекты перехода, чтобы сделать его более плавным и удобным для пользователя.
Пример 2
В этом примере мы добавили небольшой эффект перехода при наведении курсора, чтобы сделать процесс изменения цвета фона более плавным и значимым.
Изменить цвет кнопки при наведении курсора с помощью CSS - errorsea
<стиль> .myButton {padding: 10px 20px; цвет фона: # 1E88E5; граница: 0px; цвет: #fff; переход: линейный 0,25 с; } .myButton: hover {background-color: #fff; граница: 1px solid # 1E88E5; цвет: # 1E88E5; }
Наслаждайтесь конструированием
Сообщение Как изменить цвет кнопки при наведении курсора с помощью CSS появилось первым на errorsea.
Использование переходов CSS — CSS: каскадные таблицы стилей
Переходы CSS позволяют управлять скоростью анимации при изменении свойств CSS. Вместо того, чтобы изменения свойств вступали в силу немедленно, вы можете заставить изменения свойства происходить в течение определенного периода времени. Например, если вы измените цвет элемента с белого на черный, обычно это изменение происходит мгновенно. При включенных переходах CSS изменения происходят через временные интервалы, которые следуют кривой ускорения, и все они могут быть настроены.
Анимации, которые включают переход между двумя состояниями, часто называют неявными переходами , поскольку состояния между начальным и конечным состояниями неявно определяются браузером.
CSS-переходы позволяют вам решать, какие свойства анимировать ( перечисляет их явно ), когда начнется анимация (установив задержку ) , как долго будет длиться переход (установив продолжительность ) и как переход будет запущен (путем определения функции синхронизации , e.грамм. линейно или быстро в начале, медленно в конце).
Веб-автор может определить, какое свойство должно быть анимировано и каким образом. Это позволяет создавать сложные переходы. Поскольку не имеет смысла анимировать некоторые свойства, список анимируемых свойств ограничен конечным набором.
Примечание. Набор свойств, которые можно анимировать, меняется по мере развития спецификации.
Значение auto
часто бывает очень сложным. Спецификация рекомендует не анимировать от и до auto
.Некоторые пользовательские агенты, например, на основе Gecko, реализуют это требование, а другие, например, на основе WebKit, менее строги. Использование анимации с auto
может привести к непредсказуемым результатам, в зависимости от браузера и его версии, и этого следует избегать.
CSS-переходы управляются с помощью сокращенного свойства transition
. Это лучший способ настройки переходов, так как он позволяет избежать рассинхронизации параметров, что может быть очень неприятным, если тратить много времени на отладку в CSS.
Вы можете управлять отдельными компонентами перехода с помощью следующих под-свойств:
(Обратите внимание, что эти переходы повторяются бесконечно только для целей наших примеров; CSS transition
s только визуализируют изменение свойства от начала до конца. Если вам нужна визуализация этого цикла, посмотрите свойство анимации CSS .)
-
переходная собственность
- Задает имя или имена свойств CSS, к которым должны применяться переходы.Во время переходов анимируются только перечисленные здесь свойства; изменения всех остальных свойств происходят, как обычно, мгновенно.
-
продолжительность перехода
- Определяет продолжительность, в течение которой должны происходить переходы. Вы можете указать одну продолжительность, которая применяется ко всем свойствам во время перехода, или несколько значений, чтобы позволить каждому свойству переходить в течение другого периода времени.
продолжительность перехода: 0,5 с
-
функция времени перехода
- Задает функцию для определения способа вычисления промежуточных значений свойств. Временные функции определяют, как вычисляются промежуточные значения перехода. Большинство функций синхронизации можно указать, предоставив график соответствующей функции, определяемый четырьмя точками, определяющими кубическую кривую Безье. Вы также можете выбрать динамику из шпаргалки по функциям замедления.
функция времени перехода: легкость
функция времени перехода: линейная
функция времени перехода: конец шага
функция времени перехода: шаги (4, конец)
-
задержка перехода
- Определяет, как долго ждать между изменением свойства и фактическим началом перехода.
Сокращенный синтаксис CSS записывается следующим образом:
div {
переход: <свойство> <продолжительность> <функция-синхронизация> <задержка>;
}
Простой пример
В этом примере выполняется четырехсекундный переход размера шрифта с двухсекундной задержкой между моментом, когда пользователь наводит курсор мыши на элемент и началом эффекта анимации:
#delay {
размер шрифта: 14 пикселей;
свойство перехода: размер шрифта;
продолжительность перехода: 4 с;
задержка перехода: 2 с;
}
#delay: hover {
размер шрифта: 36 пикселей;
}
Пример нескольких анимированных свойств
CSS Content
.коробка {
стиль границы: сплошной;
ширина границы: 1px;
дисплей: блок;
ширина: 100 пикселей;
высота: 100 пикселей;
цвет фона: # 0000FF;
переход: ширина 2с, высота 2с, цвет фона 2с, преобразование 2с;
}
.box: hover {
цвет фона: #FFCCCC;
ширина: 200 пикселей;
высота: 200 пикселей;
преобразовать: повернуть (180 градусов);
}
Если списки значений свойств имеют разную длину
Если список значений какого-либо свойства короче других, его значения повторяются, чтобы они совпадали.Например:
div {
свойство перехода: непрозрачность, слева, сверху, высота;
продолжительность перехода: 3 с, 5 с;
}
Это рассматривается как если бы это было:
div {
свойство перехода: непрозрачность, слева, сверху, высота;
продолжительность перехода: 3 с, 5 с, 3 с, 5 с;
}
Точно так же, если список значений какого-либо свойства длиннее, чем у transition-property
, он усекается, поэтому, если у вас есть следующий CSS:
div {
свойство-переход: непрозрачность, слева;
продолжительность перехода: 3 с, 5 с, 2 с, 1 с;
}
Это интерпретируется как:
div {
свойство-переход: непрозрачность, слева;
продолжительность перехода: 3 с, 5 с;
}
Обычно CSS используется для выделения элементов меню, когда пользователь наводит на них курсор мыши.Легко использовать переходы, чтобы сделать эффект еще более привлекательным.
Прежде чем мы рассмотрим фрагменты кода, вы можете взглянуть на живую демонстрацию (при условии, что ваш браузер поддерживает переходы).
Сначала мы настраиваем меню с помощью HTML:
Затем мы создаем CSS, чтобы реализовать внешний вид нашего меню.Соответствующие части показаны здесь:
a {
цвет: #fff;
цвет фона: # 333;
переход: ослабление всех единиц;
}
а: парение,
фокус {
цвет: # 333;
цвет фона: #fff;
}
Этот CSS устанавливает внешний вид меню с изменением цвета фона и текста, когда элемент находится в состояниях : hover
и : focus
.
Следует соблюдать осторожность при использовании перехода сразу после:
- добавление элемента в DOM с использованием
.appendChild ()
- удаление отображения элемента
: нет;
объекта недвижимости.
Это обрабатывается так, как если бы начального состояния никогда не было, и элемент всегда находился в своем конечном состоянии. Простой способ преодолеть это ограничение - применить window.setTimeout ()
за несколько миллисекунд перед изменением свойства CSS, к которому вы собираетесь перейти.
Использование переходов для сглаживания функциональности JavaScript.
Переходы - отличный инструмент, позволяющий сделать внешний вид намного более плавным, при этом вам не нужно ничего делать с функциональностью JavaScript.Возьмем следующий пример.
Щелкните в любом месте, чтобы переместить мяч
Используя JavaScript, вы можете создать эффект перемещения мяча в определенное положение:
var f = document.getElementById ('foo');
document.addEventListener ('щелчок', function (ev) {
f.style.transform = 'translateY (' + (ev.clientY-25) + 'px)';
f.style.transform + = 'translateX (' + (ev.clientX-25) + 'px)';
},ложный);
С CSS вы можете сделать его гладким без каких-либо дополнительных усилий.Добавьте переход к элементу, и любое изменение будет происходить плавно:
п {
отступ слева: 60 пикселей;
}
#foo {
радиус границы: 50 пикселей;
ширина: 50 пикселей;
высота: 50 пикселей;
фон: # c00;
позиция: абсолютная;
верх: 0;
слева: 0;
переход: преобразовать 1 с;
}
Вы можете поиграть с этим здесь: https://jsfiddle.net/9h361pzo/291/
Обнаружение начала и завершения перехода
Вы можете использовать событие transitionend
, чтобы определить, что анимация завершилась.Это объект TransitionEvent
, который имеет два дополнительных свойства помимо типичного объекта Event
:
-
propertyName
- Строка, указывающая имя свойства CSS, переход которого завершен.
-
прошедшее время
- Число с плавающей запятой, указывающее количество секунд, в течение которых переход выполнялся на момент возникновения события. На это значение не влияет значение
transition-delay
.
Как обычно, вы можете использовать метод addEventListener ()
для отслеживания этого события:
эл.addEventListener ("transitionend", updateTransition, true);
Вы обнаруживаете начало перехода, используя transitionrun
(срабатывает до любой задержки) и transitionstart
(срабатывает после любой задержки) таким же образом:
el.addEventListener ("transitionrun", signalStart, true);
el.addEventListener ("transitionstart", signalStart, true);
Примечание : Событие transitionend
не срабатывает, если переход прерывается до его завершения, потому что либо элемент отображается display
: none
, либо изменяется значение свойства анимации.Спецификация | Статус | Комментарий |
---|---|---|
Переходы CSS | Осадка рабочий | Первоначальное определение |
Что такое CSS-анимация при наведении курсора и как ее использовать?
CSS-анимации и переходы могут персонализировать ваш сайт и создать приятные впечатления для посетителей. Когда посетитель веб-сайта наводит курсор на анимированный элемент, например ссылку или кнопку, он может менять цвет, увеличиваться, уменьшаться, вращаться и т. Д. В зависимости от того, как вы его закодировали.Это приятно для посетителя и показывает, что ваш сайт работает.
Благодаря CSS интерфейсные разработчики теперь могут создавать анимацию и переходы без JavaScript или Flash. Это означает, что создание такой интерактивности стало проще и дешевле, чем раньше.
Как анимация CSS, так и свойства перехода могут быть указаны с помощью псевдоклассов, которые определяют особое состояние элемента. Только в этом состоянии элемент изменится с одного стиля на другой.Псевдоклассы включают:
- : hover - когда пользователь наводит курсор на элемент
- : focus - когда пользователь щелкает или касается элемента, или выбирает его с помощью клавиши Tab на своей клавиатуре
- : активный - когда пользователь нажимает на элемент
- : цель - когда пользователь нажимает на другой элемент
Из приведенных выше псевдоклассов: hover является наиболее распространенным.
В этом посте мы предоставим все, что вам нужно знать о том, как создать анимацию или переход при наведении курсора, включая некоторые примеры, которые вы можете использовать на своем веб-сайте.
Что такое CSS-анимация наведения курсора?
CSS-анимация при наведении курсора возникает, когда пользователь наводит курсор на элемент, и элемент отвечает движением или другим эффектом перехода. Он используется для выделения ключевых элементов на веб-странице и является эффективным способом повышения интерактивности вашего сайта.
Взгляните на пример ниже. Если вы наведете курсор на div, он постепенно изменится от светло-розового до темно-розового.
Хотя это выглядит как анимация, на самом деле это переход.Эти два термина часто используются как синонимы, но анимация и переходы различаются.
Переходы позволяют изменять поведение и внешний вид элемента, но только при наличии триггера, например, когда пользователь наводит курсор на элемент. После срабатывания переходы могут перемещаться только из начального состояния в конечное. Вы не можете указать какие-либо промежуточные точки, и переход может выполняться только один раз.
Анимации, с другой стороны, могут зацикливаться, повторяться в обратном направлении и переходить от начального состояния к промежуточному состоянию к конечному состоянию благодаря ключевым кадрам.
Ключевые кадры указывают начало и конец анимации, а также любые промежуточные шаги между началом и концом. Другими словами, каждый ключевой кадр описывает, как анимированный элемент должен отображаться в заданный момент времени во время последовательности анимации.
Давайте посмотрим на анимацию отскока ниже.
Отскок при наведении курсора
Чтобы привлечь внимание посетителя вашего веб-сайта, вы можете создать эффект отскока, когда пользователь наводит курсор на элемент. Все, что вам нужно сделать, это определить некоторые свойства анимации и ключевые кадры.Позже в этом посте мы рассмотрим, как создать анимацию шаг за шагом; а пока мы просто кратко рассмотрим этот пример.
В приведенном ниже примере я помещаю div в гибкий контейнер. Таким образом, он будет отражаться только в этой определенной области контейнера и не будет перекрываться с заголовком или абзацем.
Затем я определю анимацию, которая завершит отскок за две секунды и будет работать бесконечно (пока пользователь продолжает наводить курсор на div). Я также установил для него время легкость , чтобы анимация начиналась медленно, ускорялась, а затем замедлялась.
Наконец, я определю три ключевых кадра. Первый установит начальное состояние анимации. В 0% , или в первый момент последовательности анимации, элемент будет в 0 пикселей по оси Y. При 50% , или на середине последовательности анимации, элемент переместится на 100 пикселей вверх по оси Y. В точке 100% или в конце последовательности анимации он вернется туда, где он был начат по оси Y, завершив свой отскок.
Посмотрите на результат ниже.
Возможно, вы уже заметили, что невозможно создать эффект отскока с помощью свойства перехода. Это потому, что вы можете указать только начальное и конечное состояние переходного элемента, а не промежуточную точку. Это означает, что вы можете заставить его двигаться вверх по оси Y, но вы не можете указать, чтобы он двигался назад по оси Y, чтобы завершить его отскок.
Теперь, когда мы более знакомы с CSS-анимацией наведения и переходами, давайте посмотрим, зачем вам тратить время и ресурсы на их создание.
Как использовать CSS при наведении
Использование псевдокласса: hover в CSS имеет несколько потенциальных преимуществ.
Вы можете использовать его для передачи важной информации вашим посетителям. Например, многие веб-сайты добавляют эффект наведения курсора на свои ссылки, чтобы выделить их среди другого текста на своем сайте.
Источник изображения
Некоторые веб-сайты также используют эффект наведения, поэтому дополнительная информация появляется только тогда, когда пользователь наводит курсор на элемент. В противном случае он остается скрытым.Это идеально подходит для добавления подсказок на ваш сайт, которые могут принести пользу новичкам, но раздражают более опытных пользователей. Вот пример разработчика Саши Тран.
Вы также можете использовать эффект наведения, чтобы побудить посетителей совершить действие на вашем сайте. Например, увеличение размера кнопки, когда пользователь наводит на нее курсор, может помочь убедить его отправить форму, совершить покупку или выполнить любой призыв к действию, о котором говорится в кнопке. Это также может побудить их нажимать на элементы, отличные от кнопок, например, на значки социальных сетей.Ниже приведен пример Адама Моргана.
Однако важно отметить, что псевдокласс: hover не всегда работает должным образом на сенсорных экранах. Элемент может никогда не начать свой переход или эффект анимации, когда пользователь наводит на него курсор. Или он может остановиться через мгновение после того, как пользователь наведет курсор на элемент. Или он может непрерывно воспроизводить свою анимационную последовательность в цикле, даже если пользователь больше не наведен на нее, и останавливаться только после того, как пользователь наводит курсор или щелкает на другом элементе.Его поведение зависит от браузера.
Поэтому вам следует убедиться, что ваш контент доступен на всех устройствах, в том числе с ограниченными или отсутствующими возможностями зависания. Это означает, что вы по-прежнему можете создавать и добавлять анимацию наведения на свой сайт, но они не должны иметь существенного значения для смысла контента или взаимодействия с пользователем.
Как создать CSS-анимацию наведения
Вот как настроить CSS-анимацию наведения на элемент:
1. Настройте свойство анимации.
Используйте свойство анимации или его подсвойства для стилизации элемента.
Обратите внимание, что здесь настраивается только продолжительность, время и другие детали того, как будет развиваться последовательность анимации. Чтобы фактически начать последовательность анимации и заставить элемент двигаться, вам нужно установить правило @keyframes .
2. Определите подсвойства свойства анимации.
Свойство анимации состоит из следующих подсвойств:
имя-анимацииАт-правило @keyframes .Объявление animation-name используется как свойство, а имя анимации - как значение свойства (например, animation-name: bounce; ).
продолжительность анимацииЭто продолжительность одного цикла анимации. Он может быть установлен в секундах (с) или миллисекундах (мс) (например, animation-duration: 3s;) .
функция синхронизации анимацииЭто то, как анимация перемещается по ключевым кадрам. Он определяет кривую скорости анимации, обеспечивая плавность изменений.Вы можете использовать предопределенные значения, включая легкость, линейность, легкость входа и легкость выхода. Вы также можете использовать свои собственные значения для этой функции.
задержка анимацииВремя до того, как загруженный элемент запустит последовательность анимации. Он определяется в секундах или миллисекундах. Значения: время (необязательно), начальное (устанавливает для свойства значение по умолчанию) и наследование (наследует свойство от родительского элемента).
Допускаются отрицательные значения. Если установлено отрицательное значение, анимация запускается, как если бы она уже воспроизводилась.Например, в animation-delay: -2s; , анимация будет вести себя так, как если бы она начала воспроизводиться 2 секунды назад.
количество итераций анимацииЭто количество повторов анимации. Вы можете определить его как бесконечное , чтобы повторять анимацию бесконечно. Значения свойств следующие: число (значение по умолчанию - 1), бесконечное, начальное (устанавливает для свойства значение по умолчанию) и наследование.
направление анимацииНастраивает начальную точку последовательных циклов.Анимация может менять направление или сбрасываться и повторяться. Значения свойств: нормальный (воспроизведение вперед), обратное (воспроизведение назад), альтернативное (воспроизведение вперед, затем назад), альтернативно-обратное (воспроизведение назад, затем вперед), начальное и наследование.
режим заливки анимацииЭто значения, применяемые элементом, когда анимация не воспроизводится (т.е. перед первым ключевым кадром и после воспроизведения последнего). Значения свойств: нет (по умолчанию, к элементу не применены стили), вперед (элемент сохраняет значения стиля, заданные последним ключевым кадром), назад (элемент сохраняет значения, установленные первым ключевым кадром), оба (анимация следует правилам для обоих направлений. ), начальный и наследуемый.
состояние воспроизведения анимацииОпределяет статус анимации (запущена или приостановлена). Это позволяет воспроизведенной анимации возобновить работу с того места, где она была приостановлена, а не начинать заново. Значения свойств: приостановлено, выполняется, начальное значение и наследование.
3. Используйте ключевые кадры для определения последовательности CSS-анимации при наведении курсора.
После определения свойства анимации и дополнительных свойств необходимо настроить at-правило @keyframes . Это поможет вам установить по крайней мере два ключевых кадра, которые описывают, как анимация должна отображаться в определенных случаях во время последовательности.
Чтобы обеспечить наилучшую поддержку во всех браузерах, правило @keyframes должно иметь префикс поставщика, как и все остальные свойства transition и animation .
Префиксы поставщиков должны выглядеть так:
@ -moz-keyframes
@ -o-ключевые кадры
@ -webkit-keyframes
Примечание: предыдущие примеры не имели префикса поставщика, чтобы они выглядели как можно проще.
Для обозначения различных точек останова по ключевым кадрам используется <процент> , где 0% является первым моментом последовательности, а 100% - последним. Две точки также можно определить по их псевдонимам от и до соответственно.
Вы можете установить промежуточный момент на 50% и / или любые дополнительные точки останова, которые вам могут понадобиться.
Свойства, которые нужно анимировать ( слева и вверху ), перечислены внутри точек останова, как показано в примере Шэя Хоу ниже.
Обратите внимание, что можно анимировать только отдельные свойства.
Например, если вы хотите переместить элемент сверху вниз, пытаясь анимировать от top: 0; От до внизу: 0; не сработает.
Вместо этого вам нужно будет анимировать с top: 0; С по верхний: 100%; .
4. Используйте сокращение CSS Hover Animation.
Как и переходы, анимацию можно записывать в сокращенном формате. Это достигается за счет использования одного свойства анимации вместо нескольких объявлений.
По порядку, вот как должны отображаться значения в свойстве animation : animation-name, animation-duration, animation-time-function, animation-delay, animation-iteration-count, animation-direction, animation-fill- режим и состояние воспроизведения анимации.
Теперь, когда вы знаете, как создать CSS-анимацию при наведении курсора, давайте рассмотрим несколько примеров, которые вдохновят вас.
Примеры анимации наведения курсора CSS
Когда дело доходит до настройки CSS-анимации наведения, ваше воображение - предел.Вы можете масштабировать элементы, переворачивать, вращать или даже останавливать воспроизведение при наведении курсора. Вы даже можете выйти за рамки простых эффектов и затронуть умы других разработчиков, которые придумали сложные интерактивные анимации.
Вот некоторые из самых крутых анимаций, которые вы можете использовать для своего сайта.
1. Эффекты наведения в Sass
Источник изображения
Этот разработчик делится примерами эффектов наведения, организованными по отраслям, включая сайты о путешествиях, фотографии и строительстве.Каждый из них поставляется с кодом, который вы можете установить в HTML и CSS своей страницы.
2. Эффекты при наведении курсора на кнопку
Источник изображения
Это набор из пяти эффектов при наведении курсора. Когда ваша мышь наводит курсор на кнопку, они реагируют анимацией. Все они удобны, просты и готовы к использованию на вашем веб-сайте или целевой странице.
3. CSS-эффекты при наведении курсора на изображение
Вот пятнадцать эффектов наведения, которые добавляют жизни вашим изображениям. Есть такие, которые увеличивают и уменьшают масштаб, скользят и вращают.
4. Эффекты при наведении курсора на творческое меню
Эти эффекты наведения курсора CSS помогут вашему сайту выделиться благодаря интерактивности на панели навигации.
5. Эффект наведения значков социальных сетей
Пользователи увидят классную анимацию при наведении курсора на кнопку социальной сети. Это может быть хорошим побуждением к тому, чтобы они поделились вашим сайтом с другими.
6. Анимация масштабирования при наведении курсора
Источник изображения
Увеличивайте, уменьшайте масштаб или используйте стиль наведения для создания эффекта увеличения изображения.Это отлично подходит для выделения определенного аспекта изображения.
7. Переворот анимации при наведении курсора
Источник изображения
Создайте эффект переворачивания карточки, чтобы использовать доступное пространство экрана для обмена дополнительной информацией. Это отлично подходит для страницы профиля контактов, на которой представлены ваши сотрудники или различных клиентов, которых вы поддерживаете.
8. Поворот анимации при наведении курсора
Источник изображения
Поворачивайте изображения с помощью наведения для получения дополнительного спецэффекта. Это может быть забавный и беззаботный способ заинтересовать пользователей.
9. Пауза анимации при наведении курсора
Источник изображения
Дайте пользователям повод остановиться с этой анимацией паузы при наведении курсора. Он идеально подходит для привлечения внимания посетителей, когда вы хотите, чтобы они увидели определенный элемент на вашей странице.
Добавление анимации наведения на ваш веб-сайт
Интерактивность - ключ к обеспечению хорошего взаимодействия с пользователем в Интернете. CSS-анимация наведения и переходы - отличный способ улучшить интерактивность вашего сайта.Они могут не только сделать ваш сайт более интересным, но и предоставить важную информацию вашим посетителям и побудить их к действию на вашем сайте. Самое приятное: вам нужно только немного знать HTML и CSS, чтобы их создавать.