Как создать анимированную фотогалерею на чистом CSS3
Сегодня мы решили подготовить хорошую CSS3 галерею. Без использования каких-либо других технологий. Да, да, вы не ослышались, сегодня мы не будем использовать скрипты вообще. Это полностью CSS3 фото-галерея. Фотографии в галерее будут увеличиваться, когда мы щелкнем мышью на них.
Демо
Шаг 1. HTML
Вот HTML код нашей галереи. В целом все просто – это обычные элементы A + IMG.
<div class="gallery"> <a tabindex="1"><img src="images/1.jpg"></a> <a tabindex="1"><img src="images/2.jpg"></a> <a tabindex="1"><img src="images/3.jpg"></a> <a tabindex="1"><img src="images/4.jpg"></a> <a tabindex="1"><img src="images/5.jpg"></a> <a tabindex="1"><img src="images/6.jpg"></a> <a tabindex="1"><img src="images/7.jpg"></a> <a tabindex="1"><img src="images/8.jpg"></a> <a tabindex="1"><img src="images/9.jpg"></a> <a tabindex="1"><img src="images/10.jpg"></a> <a tabindex="1"><img src="images/11.jpg"></a> <a tabindex="1"><img src="images/12.jpg"></a> </div>
Шаг 2. CSS
Теперь – все стили CSS
/* css3 photo gallery styles */ .gallery { width:610px; margin:0 auto; } .gallery a { display:inline-block; height:150px; position:relative; width:200px; } .gallery a img { border:5px solid #fff; cursor:pointer; display:block; height:100%; left:0px; position:absolute; top:0px; width:100%; z-index:1; -moz-user-select: none; -khtml-user-select: none; user-select: none; -moz-box-sizing:border-box; -webkit-box-sizing:border-box; box-sizing:border-box; -webkit-transition-property:width, height, top, bottom, left, right, z-index, border; -webkit-transition-duration:0.5s; -moz-transition-property:width, height, top, bottom, left, right, z-index, border; -moz-transition-duration:0.5s; -o-transition-property:width, height, top, bottom, left, right, z-index, border; -o-transition-duration:0.5s; transition-property:width, height, top, bottom, left, right, z-index, border; transition-duration:0.5s; } .gallery a:focus img { border:15px solid #fff; cursor:default; height:250%; position:absolute; width:250%; z-index:25; box-shadow:1px 1px 5px #888; -moz-box-shadow:1px 1px 5px #888; -webkit-box-shadow:1px 1px 5px #888; -webkit-transition-property:width, height, top, bottom, left, right, z-index, border; -webkit-transition-duration:0.5s; -moz-transition-property:width, height, top, bottom, left, right, z-index, border; -moz-transition-duration:0.5s; -o-transition-property:width, height, top, bottom, left, right, z-index, border; -o-transition-duration:0.5s; transition-property:width, height, top, bottom, left, right, z-index, border; transition-duration:0.5s; } /* custom focus rules */ .gallery a:focus:nth-child(3n+1) img { left:150px; } .gallery a:focus:nth-child(3n+2) img { left:-50px; } .gallery a:focus:nth-child(3n+3) img { left:-250px; } .gallery a:focus:nth-child(-n+3) img { top:140px; } .gallery a:focus:nth-child(n+7) img { top:-150px; } .gallery a:focus:nth-child(n+10) img { top:-295px; } /* extra close layer */ .gallery .close { background:transparent; cursor:pointer; display:none; height:352px; left:170px; position:absolute; top:160px; width:500px; z-index:30; } .gallery a:focus ~ .close { display:block; }
See the Pen Pure CSS3 Animated Photo Gallery by vavik (@vavik96) on CodePen.
Вывод
Вот и все, все было на самом деле просто, не так ли? Результат великолепен. Я надеюсь, что наши советы помогут вам. Удачи!
Источник