Главная » Файлы » Прочие скрипты » CSS |
Блоки с анимированной задвижкой с использованием SVG и CSS3
[ Скачать с сервера (22.2 Kb) ] | 15.09.14, 08:34:59 |
Достаточно интересное решение. Уверен, что данный вид блоков можно прекрасно использовать как для галерей, так и для мини-портфолио ваших работ Для начала посмотрите ДЕМО Моё тестирование в фидле: КЛИК Установка: После < /head > на нужных страницах вставляйте: Код <script src="/js/snap.svg-min.js"></script> <script> function init() { var speed = 330, easing = mina.backout; [].slice.call(document.querySelectorAll('#grid > a')).forEach(function (el) { var s = Snap(el.querySelector('svg')), path = s.select('path'), pathConfig = { from: path.attr('d'), to: el.getAttribute('data-path-hover') }; el.addEventListener('mouseenter', function () { path.animate({ 'path': pathConfig.to }, speed, easing); }); el.addEventListener('mouseleave', function () { path.animate({ 'path': pathConfig.from }, speed, easing); }); }); } $(document).ready(function() { init(); }); </script> Далее в самый низ вашего css вставляйте: Код body { background:#ffaaaa; margin:0px; padding:0px; } /* Common style */ .grid { margin: 10px; max-width: 1000px; width: 90%; } .grid a { float: left; max-width: 250px; width: 200px; color: #333; font-size: 13px; } .grid a:nth-child(odd) { margin: 0px; } .grid figure { position: relative; overflow: hidden; margin: 5px; background: #333; } .grid figure img { position: relative; display: block; width: 100%; opacity: 0.7; -webkit-transition: opacity 0.3s; transition: opacity 0.3s; } .grid figcaption { position: absolute; top: 0; z-index: 11; width: 100%; height: 100%; text-align: center; } .grid figcaption h2 { margin: 0 0 20px 0; color: #3498db; text-transform: uppercase; letter-spacing: 1px; font-weight: 300; font-size: 130%; -webkit-transition: -webkit-transform 0.3s; transition: transform 0.3s; } .grid figcaption p { padding: 0 20px; color: #aaa; font-weight: 300; -webkit-transition: opacity 0.3s, -webkit-transform 0.3s; transition: opacity 0.3s, transform 0.3s; } .grid figcaption h2, .grid figcaption p { -webkit-transform: translateY(50px); transform: translateY(50px); } .grid figure button { position: absolute; padding: 4px 20px; border: none; text-transform: uppercase; letter-spacing: 1px; font-weight: bold; -webkit-transition: opacity 0.3s, -webkit-transform 0.3s; transition: opacity 0.3s, transform 0.3s; } .grid figcaption, .grid figcaption h2, .grid figcaption p, .grid figure button { -webkit-backface-visibility: hidden; backface-visibility: hidden; } /* Style for SVG */ .grid svg { position: absolute; top: -1px; /* fixes rendering issue in FF */ z-index: 10; width: 100%; height: 100%; } .grid svg path { fill: #fff; } /* Hover effects */ .grid a:hover figure img { opacity: 1; } .grid a:hover figcaption h2, .grid a:hover figcaption p { -webkit-transform: translateY(0); transform: translateY(0); } .grid a:hover figcaption p { opacity: 0; } /* Individual styles */ .demo-1 body { background: #3498db; } .demo-1 .grid figure button, .demo-3 .grid figure button { top: 50%; left: 50%; border: 3px solid #fff; background: transparent; color: #fff; opacity: 0; -webkit-transform: translateY(-50%) translateX(-50%) scale(0.25); transform: translateY(-50%) translateX(-50%) scale(0.25); } .demo-1 .grid a:hover figure button, .demo-3 .grid a:hover figure button { opacity: 1; -webkit-transform: translateY(-50%) translateX(-50%) scale(1); transform: translateY(-50%) translateX(-50%) scale(1); } .demo-2 body { background: #e74c3c; } .demo-2 .grid figcaption h2 { color: #e74c3c; } .demo-2 .grid figcaption p { -webkit-transition-delay: 0.05s; transition-delay: 0.05s; } .demo-2 .grid figure button { bottom: 0; left: 0; padding: 15px; width: 100%; background: #fff; color: #333; font-weight: 300; -webkit-transform: translateY(100%); transform: translateY(100%); } .demo-2 .grid a:hover figure button { -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; -webkit-transform: translateY(0); transform: translateY(0); } .demo-2 .grid figcaption h2, .demo-2 .grid figcaption p, .demo-3 .grid figcaption h2, .demo-3 .grid figcaption p { -webkit-transition-timing-function: cubic-bezier(0.250, 0.250, 0.115, 1); /* older webkit */ -webkit-transition-timing-function: cubic-bezier(0.250, 0.250, 0.115, 1.445); timing-function: cubic-bezier(0.250, 0.250, 0.115, 1.445); } .demo-2 .grid a:hover figcaption p, .demo-3 .grid a:hover figcaption p { -webkit-transition-delay: 0s; transition-delay: 0s; -webkit-transition-duration: 0.1s; transition-duration: 0.1s; } .demo-3 body { background: #52be7f; } .demo-3 .grid figcaption h2 { color: #52be7f; } .demo-3 .grid a:hover figcaption h2 { -webkit-transform: translateY(5px); transform: translateY(5px); } Блоки оформляются следующим образом: Код <section id="grid" class="grid clearfix"> <a href="#" data-path-hover="m 0,0 0,47.7775 c 24.580441,3.12569 55.897012,-8.199417 90,-8.199417 34.10299,0 65.41956,11.325107 90,8.199417 L 180,0 z"> <figure> <img src="Ссылка на картинку" /> <svg viewBox="0 0 180 320" preserveAspectRatio="none"> <path d="m 0,0 0,171.14385 c 24.580441,15.47138 55.897012,24.75772 90,24.75772 34.10299,0 65.41956,-9.28634 90,-24.75772 L 180,0 0,0 z"/> </svg> <figcaption> <h2>Заголовок</h2> <p>Краткое описание</p> </figcaption> </figure> </a> <a href="#" data-path-hover="m 0,0 0,47.7775 c 24.580441,3.12569 55.897012,-8.199417 90,-8.199417 34.10299,0 65.41956,11.325107 90,8.199417 L 180,0 z"> <figure> <img src="Ссылка на картинку" /> <svg viewBox="0 0 180 320" preserveAspectRatio="none"> <path d="m 0,0 0,171.14385 c 24.580441,15.47138 55.897012,24.75772 90,24.75772 34.10299,0 65.41956,-9.28634 90,-24.75772 L 180,0 0,0 z"/> </svg> <figcaption> <h2>Заголовок</h2> <p>Краткое описание</p> </figcaption> </figure> </a> </section> Скрипт из прикреплённого архива залейте в папку js Материал подготовлен ассоциацией защитников фигурных отвёрток | |
Просмотров: 1003 | Загрузок: 263 | Комментарии: 16 | |
Всего комментариев: 15 | ||||||||||||||||
| ||||||||||||||||