Вариант 1:
Стрелка с ховер-эффектом, которая подойдет для оформления кнопок "подробнее" или "далее", а также для построения последовательности, например: "Деньги -> Стулья -> Профит"
1 2 3 |
<div class="arrow-1"> <div></div> </div> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
.arrow-1 { cursor: pointer; position: relative; width: 80px; height: 50px; margin: 20px; } .arrow-1 div { position: relative; top: 20px; width: 90px; height: 10px; background-color: #337AB7; box-shadow: 0 3px 5px rgba(0, 0, 0, .2); left:0; display: block; } .arrow-1 div::after { content: ''; position: absolute; width: 40px; height: 10px; top: -11px; right: -8px; background-color: #337AB7; transform: rotate(45deg); } .arrow-1 div::before { content: ''; position: absolute; width: 40px; height: 10px; top: 11px; right: -8px; background-color: #337AB7; box-shadow: 0 3px 5px rgba(0, 0, 0, .2); transform: rotate(-45deg); } .arrow-1:hover { animation: arrow-1 1s linear infinite; } @keyframes arrow-1 { 0% { left:0; } 50% { left:10px; } 100% { left:0; } } |
Вариант 2:
Большая стрелка для каких-нибудь информационных или графических блоков.
1 2 3 4 |
<div class="arrow-2"> <div class="arrow-2-top"></div> <div class="arrow-2-bottom"></div> </div> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
.arrow-2 { cursor: pointer; height: 120px; width: 80px; position: relative; margin: 20px; } .arrow-2-top, .arrow-2-bottom { background: #337AB7; height: 10px; left: -30px; position: absolute; top: 60px; width: 100px; } .arrow-2-top { top: 64px; } .arrow-2-top { transform: rotate(45deg); transform-origin: bottom right; } .arrow-2-bottom { transform: rotate(-45deg); transform-origin: top right; } .arrow-2-top::after, .arrow-2-bottom::after { background: #000; content: ''; height: 100%; position: absolute; top: 0; transition: all 0.15s; } .arrow-2-top::after { left: 100%; right: 0; transition-delay: 0s; } .arrow-2-bottom::after { left: 0; right: 100%; transition-delay: 0.15s; } .arrow-2:hover .arrow-2-top::after { left: 0; transition-delay: 0.15s; } .arrow-2:hover .arrow-2-bottom::after { right: 0; transition-delay: 0s; } |
Вариант 3:
Стрелка на SVG для меню или кнопки "подробнее / далее"
1 2 3 4 5 6 7 8 |
<a class="arrow-3" href="#link">Подробнее или пунк меню <svg class="arrow-3-icon" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"> <g fill="none" stroke="#337AB7" stroke-width="1.5" stroke-linejoin="round" stroke-miterlimit="10"> <circle class="arrow-3-iconcircle" cx="16" cy="16" r="15.12"></circle> <path class="arrow-3-icon--arrow" d="M16.14 9.93L22.21 16l-6.07 6.07M8.23 16h13.98"></path> </g> </svg> </a> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
.arrow-3 { color: #337AB7; cursor: pointer; text-decoration: none; font-size: 18px; height: 18px; line-height: 18px; display: inline-block; margin: 20px; } .arrow-3 .arrow-3-icon { position: relative; top: -1px; transition: transform 0.3s ease; vertical-align: middle; } .arrow-3 .arrow-3-iconcircle { transition: stroke-dashoffset .3s ease; stroke-dasharray: 95; stroke-dashoffset: 95; } .arrow-3:hover .arrow-3-icon { transform: translate3d(5px, 0, 0); } .arrow-3:hover .arrow-3-iconcircle { stroke-dashoffset: 0; } |
Вариант 4:
Вариант стрелки для аккордиона или выпадающего блока (меняет направление по клику).
Требуется библиотека jQuery
1 2 3 4 |
<div class="arrow-4"> <span class="arrow-4-left"></span> <span class="arrow-4-right"></span> </div> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
.arrow-4 { position: relative; cursor: pointer; margin:20px; width: 66px; height: 30px; } .arrow-4-left { position: absolute; background-color: transparent; top: 10px; left: 0; width: 40px; height: 10px; display: block; transform: rotate(35deg); float: right; border-radius: 2px; } .arrow-4-left:after { content: ""; background-color: #337AB7; width: 40px; height: 10px; display: block; float: right; border-radius: 6px 10px 10px 6px; transition: all 0.5s cubic-bezier(0.25, 1.7, 0.35, 0.8); z-index: -1; } .arrow-4-right { position: absolute; background-color: transparent; top: 10px; left: 26px; width: 40px; height: 10px; display: block; transform: rotate(-35deg); float: right; border-radius: 2px; } .arrow-4-right:after { content: ""; background-color: #337AB7; width: 40px; height: 10px; display: block; float: right; border-radius: 10px 6px 6px 10px; transition: all 0.5s cubic-bezier(0.25, 1.7, 0.35, 0.8); z-index: -1; } .open .arrow-4-left:after { transform-origin: center center; transform: rotate(-70deg); } .open .arrow-4-right:after { transform-origin: center center; transform: rotate(70deg); } |
1 2 3 |
$(".arrow-4").click(function() { $(this).toggleClass("open"); }); |
Вариант 5:
Стрелки для оформления подсказок или каких-нибудь информационных блоков
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<div class="arrow-5 arrow-5-top"> Стрелка вверх </div> <div class="arrow-5 arrow-5-bottom"> Стрелка вниз </div> <div class="arrow-5 arrow-5-left"> Стрелка влево </div> <div class="arrow-5 arrow-5-right"> Стрелка вправо </div> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
.arrow-5 { background: #337AB7; text-align: center; color: #fff; padding: 20px; margin: 20px; } .arrow-5-top, .arrow-5-bottom, .arrow-5-right, .arrow-5-left { position: relative; z-index: 10; } .arrow-5-top::after, .arrow-5-bottom::after, .arrow-5-right::after, .arrow-5-left::after { content: ''; width: 0; height: 0; display: block; position: absolute; z-index: 10; border: 0; } .arrow-5-top::after { border-left: 10px solid transparent; border-right: 10px solid transparent; margin-left: -10px; left: 50%; border-bottom: 10px solid #337AB7; top: -10px; } .arrow-5-bottom::after { border-left: 10px solid transparent; border-right: 10px solid transparent; margin-left: -10px; left: 50%; border-top: 10px solid #337AB7; bottom: -10px; } .arrow-5-right::after { border-top: 10px solid transparent; border-bottom: 10px solid transparent; margin-top: -10px; top: 50%; border-left: 10px solid #337AB7; left: auto; right: -10px; } .arrow-5-left::after { border-top: 10px solid transparent; border-bottom: 10px solid transparent; margin-top: -10px; top: 50%; border-right: 10px solid #337AB7; left: -10px; } |
Вариант 6:
Стрелки на SVG для слайдера или карусели
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<div class="arrow-6"> <svg width="18px" height="17px" viewBox="0 0 18 17" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g transform="translate(8.500000, 8.500000) scale(-1, 1) translate(-8.500000, -8.500000)"> <polygon class="arrow-6-pl" points="16.3746667 8.33860465 7.76133333 15.3067621 6.904 14.3175671 14.2906667 8.34246869 6.908 2.42790698 7.76 1.43613596"></polygon> <polygon class="arrow-6-pl-fixed" points="16.3746667 8.33860465 7.76133333 15.3067621 6.904 14.3175671 14.2906667 8.34246869 6.908 2.42790698 7.76 1.43613596"></polygon> <path d="M-1.48029737e-15,0.56157424 L-1.48029737e-15,16.1929159 L9.708,8.33860465 L-2.66453526e-15,0.56157424 L-1.48029737e-15,0.56157424 Z M1.33333333,3.30246869 L7.62533333,8.34246869 L1.33333333,13.4327013 L1.33333333,3.30246869 L1.33333333,3.30246869 Z"></path> </g> </svg> <svg width="18px" height="17px" viewBox="-1 0 18 17" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <g> <polygon class="arrow-6-pl" points="16.3746667 8.33860465 7.76133333 15.3067621 6.904 14.3175671 14.2906667 8.34246869 6.908 2.42790698 7.76 1.43613596"></polygon> <polygon class="arrow-6-pl-fixed" points="16.3746667 8.33860465 7.76133333 15.3067621 6.904 14.3175671 14.2906667 8.34246869 6.908 2.42790698 7.76 1.43613596"></polygon> <path d="M-4.58892184e-16,0.56157424 L-4.58892184e-16,16.1929159 L9.708,8.33860465 L-1.64313008e-15,0.56157424 L-4.58892184e-16,0.56157424 Z M1.33333333,3.30246869 L7.62533333,8.34246869 L1.33333333,13.4327013 L1.33333333,3.30246869 L1.33333333,3.30246869 Z"></path> </g> </svg> </div> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
.arrow-6 { margin:20px; } .arrow-6 svg { width: 100px; height: auto; margin: 0 2rem; cursor: pointer; overflow: visible; } .arrow-6 svg polygon, .arrow-6 svg path { transition: all 0.5s cubic-bezier(0.2, 1, 0.3, 1); fill: #337AB7; } .arrow-6 svg:hover polygon, .arrow-6 svg:hover path { transition: all 1s cubic-bezier(0.2, 1, 0.3, 1); fill: #000; } .arrow-6 svg:hover .arrow-6-pl { animation: arrow-6-anim 1s cubic-bezier(0.2, 1, 0.3, 1) infinite; } .arrow-6 svg:hover .arrow-6-pl-fixed { animation: arrow-6-fixed-anim 1s cubic-bezier(0.2, 1, 0.3, 1) infinite; } @keyframes arrow-6-anim { 0% { opacity: 1; transform: translateX(0); } 5% { transform: translateX(-0.1rem); } 100% { transform: translateX(1rem); opacity: 0; } } @keyframes arrow-6-fixed-anim { 5% { opacity: 0; } 20% { opacity: 0.4; } 100% { opacity: 1; } } |
Вариант 7:
Анимированная стрелка вниз
1 2 3 4 5 |
<div class="arrow-7"> <span></span> <span></span> <span></span> </div> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
.arrow-7 { margin: 40px auto 10px auto; width: 38px; height: 100px; } .arrow-7 span { display: block; width: 30px; height: 30px; border-bottom: 5px solid #337AB7; border-right: 5px solid #337AB7; transform: rotate(45deg); margin: -16px 0; animation: arrow-7 2s infinite; } .arrow-7 span:nth-child(2){ animation-delay: -0.2s; } .arrow-7 span:nth-child(3){ animation-delay: -0.4s; } @keyframes arrow-7 { 0%{ opacity: 0; transform: translate(0,-20px) rotate(45deg); } 50%{ opacity: 1; } 100%{ opacity: 0; transform: translate(0,20px) rotate(45deg); } } |
Вариант 8:
Еще один вариант анимированной стрелки вниз
1 |
<div class="arrow-8"></div> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
.arrow-8 { position: relative; width: 100px; height: 100px; margin: 30px auto 80px auto; } .arrow-8:before, .arrow-8:after { content: ''; position: absolute; box-sizing: border-box; width: 100%; height: 100%; border-left: 26px solid #337AB7; border-bottom: 26px solid #337AB7; animation: arrow-8 3s linear infinite; } .arrow-8:after { animation: arrow-8 3s linear infinite -1.5s; } @keyframes arrow-8 { 0% { opacity: 0; transform: translate(0, -53px) rotate(-45deg); } 10%, 90% { opacity: 0; } 50% { opacity: 1; transform: translate(0, 0) rotate(-45deg); } 100% { opacity: 0; transform: translate(0, 53px) rotate(-45deg); } } |
Еще несколько вариантов стрелок можно найти в темах: Кнопка "вверх" и варианты ее оформления и Векторные стрелки на SVG
Здраствуйте. Можно узнать как второй вариант повернуть влево? Можно было бы сразу сделать в обе стороны в примерах?
и на северо запад
как повернуть стрелку на юзо запад в 1 варианте?
Как сделать стрелку более толстой в примере 1?
height: 10px;
И позиции подравнять потом
Здравствуйте, возможно изменить цвет (Вариант 3) при наведении?
Я вам больше скажу, изменить можно даже размер!
Здравствуйте, у меня стрелка 7 не анимированная получается и стоит слева.
То что слева, это ее выравнять нужно как угодно родительским контейнером.
А то что не анимированная, это какая то ошибка...
Вот пример в вакууме (код 1 в 1, что и тут)
Спасибо за ответ) Разобралась. Все заработало. Спасибо)
Здравствуйте. На тильде будет работать?
Если там можно править HTML и CSS, то да
Здравствуйте, подскажите как поменять цвет стрелки ?
Какой именно?
Как можно изменить цвет стрелки из третьего примера?
В HTML
Здравствуйте, подскажите пожалуйста как выравнить вариант 8 по центру блока, в css ишу margin: 30px auto; выравнивание есть, но всё равно небольшой сдвиг в право остаётся.
Заранее большое спасибо
сдвиг в лево, а не вправо
Подправил код, проверьте, остался ли сдвиг?
Теперь всё хорошо, спасибо большое !!!
Хорошие примеры, спасибо. Но код стоит править. Много дублированных стилей, код можно написать гораздо короче и т.п. Oтрицательный delay…не стоит так делать.
Отрицательный animation-delay допускается и полезный даже 🙂
Как сделать такую стреллку ссылкой?
Обернуть в тег a
Отличные эффекты, спасибо!
Здравствуйте! Подскажите как сделать "Вариант - 8" чтобы она указывала в левую сторону?
Поместите в контейнер
CSS: