Kosten | Среда, 20 Мая 2020, 23:20 | Сообщение 1 |
| Давайте рассмотрим концептуальный дизайн для интерактивной анимации. Создатель этого флажка дал вам основную идею, отсюда вы должны взять ее самостоятельно. Вместо того, чтобы просто помещать статические блоки, вы можете добавить немного анимации, чтобы оживить вещи.
Разработчик этого флажка дал вам три эффекта наведения, и один включает флажок. Вы можете комбинировать другие эффекты с флажком в зависимости от ваших потребностей. В демонстрационной версии по умолчанию данный флажок не активируется. Вам поделится только эффект анимации, остальная часть работы вам придется делать вручную.
Так выглядят кнопки при установочном процессе:
HTML
Код <span class="title">Basic Box Hover</span> <div class="basicBox"> Hover <svg width="130" height="65" viewBox="0 0 130 65" xmlns="http://www.w3.org/2000/svg"> <rect x='0' y='0' fill='none' width='130' height='65'/> </svg> </div>
<span class="title">Swiggle Box Hover</span> <div class="swiggleBox"> Hover <svg width="130" height="65" viewBox="0 0 130 65" xmlns="http://www.w3.org/2000/svg"> <path d="M0.6,0.5c0,5.4,0,61.5,0,61.5s4.5,5.4,9.9,0c5.4-5.4,9.9,0,9.9,0s4.5,5.4,9.9,0c5.4-5.4,9.9,0,9.9,0 s4.5,5.4,9.9,0c5.4-5.4,9.9,0,9.9,0s4.5,5.4,9.9,0c5.4-5.4,9.9,0,9.9,0s4.5,5.4,9.9,0c5.4-5.4,9.9,0,9.9,0s4.5,5.4,9.9,0 c5.4-5.4,9.9,0,9.9,0s4.5,5.4,9.9,0c0,0,0-56.1,0-61.5H0.6z"/> </svg> </div>
<span class="title">Check Box Hover</span> <div class="checkBox"> Hover <svg width="140" height="65" viewBox="0 0 140 65" xmlns="http://www.w3.org/2000/svg"> <rect x="10" class="button" width="128.8" height="63.9"/> <rect x="0" y="22.5" class="box" width="20" height="20"/> <polyline class="checkMark" points="4.5,32.6 8.7,36.8 16.5,29.1"/> </svg> </div>
<!-- Signature --> <div class="madeByContainer"> <span>Made By With</span> <div class="heart"></div> <span>Andrew Wierzba</span> </div> CSS
Код span.title { margin: 0 auto; color: #BBB; font-family: 'Open Sans', sans-serif; font-size: 0.85rem; text-align: center; display: block; }
.basicBox, .swiggleBox, .checkBox { width: 130px; height: 65px; margin: 15px auto; color: #4274D3; font-family: 'Open Sans', sans-serif; font-size: 1.15rem; line-height: 65px; text-transform: uppercase; text-align: center; position: relative; cursor: pointer; }
svg { position: absolute; top: 0; left: 0; } svg rect, svg path, svg polyline { fill: none; stroke: #4274D3; stroke-width: 1; }
.basicBox:hover svg rect, .swiggleBox:hover svg path, .checkBox:hover svg polyline { stroke: #4274D3; }
/* Basic Box */ svg rect { stroke-dasharray: 400, 0; -webkit-transition: all 0.8s ease-in-out; -moz-transition: all 0.8s ease-in-out; -ms-transition: all 0.8s ease-in-out; -o-transition: all 0.8s ease-in-out; } .basicBox:hover svg rect { stroke-width: 3; stroke-dasharray: 35, 245; stroke-dashoffset: 38; -webkit-transition: all 0.8s ease-in-out; -moz-transition: all 0.8s ease-in-out; -ms-transition: all 0.8s ease-in-out; -o-transition: all 0.8s ease-in-out; }
/* Swiggle Box */ svg path { stroke-dasharray: 265, 0; -webkit-transition: all 1s ease-in-out; -moz-transition: all 1s ease-in-out; -ms-transition: all 1s ease-in-out; -o-transition: all 1s ease-in-out; } .swiggleBox:hover svg path { stroke-width: 3; stroke-dasharray: 0, 350; stroke-dashoffset: 20; -webkit-transition: all 1s ease-in-out; -moz-transition: all 1s ease-in-out; -ms-transition: all 1s ease-in-out; -o-transition: all 1s ease-in-out; }
/* Check Box */ .checkBox { /* Add Padding Left To Center Text */ } .checkBox svg { /* Presentation Purposes */ margin-left: -10px; } .checkBox svg rect, .checkBox svg polyline { fill: none; stroke: #4274D3; stroke-width: 1; -webkit-transition: all 0.8s ease-in-out; -moz-transition: all 0.8s ease-in-out; -ms-transition: all 0.8s ease-in-out; -o-transition: all 0.8s ease-in-out; } .checkBox:hover svg rect { stroke-width: 2; -webkit-transition: all 0.8s ease-in-out; -moz-transition: all 0.8s ease-in-out; -ms-transition: all 0.8s ease-in-out; -o-transition: all 0.8s ease-in-out; } .checkBox:hover svg polyline { stroke-width: 2; -webkit-transition: all 0.8s ease-in-out; -moz-transition: all 0.8s ease-in-out; -ms-transition: all 0.8s ease-in-out; -o-transition: all 0.8s ease-in-out; } .checkBox svg .button { stroke-dasharray: 400px, 0; } .checkBox:hover svg .button { stroke-dasharray: 0, 400px; stroke-dashoffset: 33px; } /* Check Mark Effect */ .box, .checkMark { opacity: 0; } .checkBox:hover .box { -webkit-animation: boxDisplay 0.2s forwards; -moz-animation: boxDisplay 0.2s forwards; -ms-animation: boxDisplay 0.2s forwards; -o-animation: boxDisplay 0.2s forwards; animation: boxDisplay 0.2s forwards; -webkit-animation-delay: 0.65s; -moz-animation-delay: 0.65s; -ms-animation-delay: 0.65s; -o-animation-delay: 0.65s; animation-delay: 0.65s; } .checkBox:hover .checkMark { -webkit-animation: checkDisplay 0.2s forwards; -moz-animation: checkDisplay 0.2s forwards; -ms-animation: checkDisplay 0.2s forwards; -o-animation: checkDisplay 0.2s forwards; animation: checkDisplay 0.2s forwards; -webkit-animation-delay: 1s; -moz-animation-delay: 1s; -ms-animation-delay: 1s; -o-animation-delay: 1s; animation-delay: 1s; } /* Check Box Display */ @-webkit-keyframes boxDisplay { 0% { opacity: 0; } 100% { opacity: 1; } } @-moz-keyframes boxDisplay { 0% { opacity: 0; } 100% { opacity: 1; } } @-ms-keyframes boxDisplay { 0% { opacity: 0; } 100% { opacity: 1; } } @-o-keyframes boxDisplay { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes boxDisplay { 0% { opacity: 0; } 100% { opacity: 1; } } /* Check Mark Display */ @-webkit-keyframes checkDisplay { 0% { opacity: 0; } 100% { opacity: 1; } } @-moz-keyframes checkDisplay { 0% { opacity: 0; } 100% { opacity: 1; } } @-ms-keyframes checkDisplay { 0% { opacity: 0; } 100% { opacity: 1; } } @-o-keyframes checkDisplay { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes checkDisplay { 0% { opacity: 0; } 100% { opacity: 1; } } Установка завершена!
Демонстрация
| Страна: (RU) |
| |