Gallery Slider



FancyBox


Documentation

FancyBox install files:

PHP
<section class="gallery">
	<div class="wrapper">
		<div class="gallery_slider || hidden_slider" data-slider="gallery_slider">
			<?php for ($i = 1; $i < 15; $i++) :?>
				<div>
					<a data-fancybox="gallery" data-width="1200" href="/img/gallery_img_<?= $i?>.jpg" class="img_wrap">
						<img src="/img/gallery_img_<?= $i?>.jpg" alt="">
					</a>
				</div>
			<?php endfor ;?>
		</div>
		<div class="gallery_slider_nav || hidden_slider" data-slider="gallery_slider_nav">
			<?php for ($i = 1; $i < 15; $i++) :?>
			<div>
				<div class="slider_item">
					<img src="/img/gallery_img_<?= $i?>.jpg" alt="">
				</div>
			</div>
			<?php endfor ;?>
		</div>
	</div>
</section>
CSS
.gallery .gallery_slider{margin:0 0 1rem}
.gallery .gallery_slider.hidden_slider{opacity:0;overflow:hidden;max-height:58rem}
.gallery .gallery_slider .slick-prev,.gallery .gallery_slider .slick-next{width:8rem;height:8rem}
.gallery .gallery_slider .slick-prev::after,.gallery .gallery_slider .slick-next::after{border-color:#000;width:8rem;height:8rem}
.gallery .gallery_slider .slick-prev{left:-11.5rem}
.gallery .gallery_slider .slick-next{right:-11.5rem}
.gallery .gallery_slider .img_wrap{display:block;padding-top:49.8%;overflow:hidden;position:relative}
.gallery .gallery_slider .img_wrap img{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);transform:translate(-50%,-50%);display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;font-family:'object-fit: cover;\A'}

.gallery .gallery_slider_nav{width:-webkit-calc(100% - 21.2rem);width:-moz-calc(100% - 21.2rem);width:calc(100% - 21.2rem);margin:0 auto}
.gallery .gallery_slider_nav.hidden_slider{opacity:0;overflow:hidden;max-height:10rem}
.gallery .gallery_slider_nav .slider_item{position:relative;cursor:pointer;width:90%;height:9.6rem;margin:0 auto;overflow:hidden;-webkit-transition:.3s linear;-o-transition:.3s linear;-moz-transition:.3s linear;transition:.3s linear}
.gallery .gallery_slider_nav .slider_item img{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);transform:translate(-50%,-50%);display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;font-family:'object-fit: cover;\A	'}
.gallery .gallery_slider_nav .slick-prev,.gallery .gallery_slider_nav .slick-next{position:absolute;top:0;width:9.6rem;height:100%;background-color:#f15929;color:#fff;text-align:center;-webkit-transition:all .2s linear;-o-transition:all .2s linear;-moz-transition:all .2s linear;transition:all .2s linear;-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}
.gallery .gallery_slider_nav .slick-prev::before,.gallery .gallery_slider_nav .slick-next::before{position:absolute;font-size:1.9rem;text-transform:uppercase;top:5.2rem;left:50%;-webkit-transform:translate(-50%,0);-moz-transform:translate(-50%,0);-ms-transform:translate(-50%,0);-o-transform:translate(-50%,0);transform:translate(-50%,0)}
.gallery .gallery_slider_nav .slick-prev::after,.gallery .gallery_slider_nav .slick-next::after{content:"";position:absolute;top:2.3rem;left:50%;background-image:url(/img/arrowSlide.png);background-repeat:no-repeat;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;background-size:cover;background-position:center;width:2.5rem;height:2.5rem;vertical-align:unset;border:none;border-width:unset}
.gallery .gallery_slider_nav .slick-prev{left:-10.5rem}
.gallery .gallery_slider_nav .slick-prev::before{content:"Prev"}
.gallery .gallery_slider_nav .slick-prev::after{-webkit-transform:translate(-50%,0) rotate(180deg);-moz-transform:translate(-50%,0) rotate(180deg);-ms-transform:translate(-50%,0) rotate(180deg);-o-transform:translate(-50%,0) rotate(180deg);transform:translate(-50%,0) rotate(180deg)}
.gallery .gallery_slider_nav .slick-next{right:-10.5rem}
.gallery .gallery_slider_nav .slick-next::before{content:"Next"}
.gallery .gallery_slider_nav .slick-next::after{-webkit-transform:translate(-50%,0) rotate(360deg);-moz-transform:translate(-50%,0) rotate(360deg);-ms-transform:translate(-50%,0) rotate(360deg);-o-transform:translate(-50%,0) rotate(360deg);transform:translate(-50%,0) rotate(360deg)}

@media (-ms-high-contrast: none), (-ms-high-contrast: active), (-moz-touch-enabled: 0), (hover: hover) {
	.gallery .gallery_slider_nav .slick-prev:hover,.gallery .gallery_slider_nav .slick-next:hover{background-color:#21244f}
}

@media only screen and (max-width: 1500px) {
	.gallery .gallery_slider .slick-next{right:-4.5rem}
	.gallery .gallery_slider .slick-prev{left:-4.5rem}
	.gallery .gallery_slider .slick-prev::after,.gallery .gallery_slider .slick-next::after{width:6rem;height:6rem}
	.gallery .gallery_slider .slick-prev,.gallery .gallery_slider .slick-next{width:6rem;height:6rem}
}

@media only screen and (max-width: 767px) {
	.gallery .gallery_slider_nav{width:-webkit-calc(100% - 14rem);width:-moz-calc(100% - 14rem);width:calc(100% - 14rem)}
	.gallery .gallery_slider_nav .slider_item{height:7rem}
	.gallery .gallery_slider_nav .slick-prev,.gallery .gallery_slider_nav .slick-next{width:7rem}
	.gallery .gallery_slider_nav .slick-prev{left:-7rem}
	.gallery .gallery_slider_nav .slick-next{right:-7rem}
	.gallery .gallery_slider_nav .slick-prev::before,.gallery .gallery_slider_nav .slick-next::before{font-size:1.4rem;top:4.2rem}
	.gallery .gallery_slider_nav .slick-prev::after,.gallery .gallery_slider_nav .slick-next::after{-webkit-background-size:2rem 2rem;-moz-background-size:2rem 2rem;-o-background-size:2rem 2rem;background-size:2rem 2rem;width:2rem;height:2rem;top:1.6rem}
}
SCSS
.gallery {
	.gallery_slider {
		margin: 0 0 1rem;
		&.hidden_slider {
			opacity: 0;
			overflow: hidden;
			max-height: 58rem;
		}
		
		.slick-prev, .slick-next {
			width: 8rem;
			height: 8rem;
		}
		
		.slick-prev::after, .slick-next::after {
			border-color: #000;
			width: 8rem;
			height: 8rem;
		}
		
		.slick-prev {
			left: -11.5rem;
		}
		
		.slick-next {
			right: -11.5rem;
		}
		
		.img_wrap {
			display: block;
			padding-top: 49.8%;
			overflow: hidden;
			position: relative;
			
			img {
				position: absolute;
				top: 50%;
				left: 50%;
				transform: translate(-50%, -50%);
				display: block;
				width: 100%;
				height: 100%;
				object-fit: cover;
				font-family: 'object-fit: cover;';
			}
		}
	}
	
	.gallery_slider_nav {
		width: calc(100% - 21.2rem);
		margin: 0 auto;
		
		&.hidden_slider {
			opacity: 0;
			overflow: hidden;
			max-height: 10rem;
		}
		
		.slider_item {
			position: relative;
			cursor: pointer;
			width: 90%;
			height: 9.6rem;
			margin: 0 auto;
			overflow: hidden;
			transition: .3s linear;
			
			img {
				position: absolute;
				top: 50%;
				left: 50%;
				transform: translate(-50%, -50%);
				display: block;
				width: 100%;
				height: 100%;
				object-fit: cover;
				font-family: 'object-fit: cover;';
			}
		}
		
		.slick-prev, .slick-next {
			position: absolute;
			top: 0;
			width: 9.6rem;
			height: 100%;
			background-color: #f15929;
			color: #fff;
			text-align: center;
			transition: all .2s linear;
			transform: none;
		}
		
		.slick-prev::before, .slick-next::before {
			position: absolute;
			font-size: 1.9rem;
			text-transform: uppercase;
			top: 5.2rem;
			left: 50%;
			transform: translate(-50%, 0);
		}
		
		.slick-prev::after, .slick-next::after {
			content: "";
			position: absolute;
			top: 2.3rem;
			left: 50%;
			background-image: url(/img/arrowSlide.png);
			background-repeat: no-repeat;
			background-size: cover;
			background-position: center;
			width: 2.5rem;
			height: 2.5rem;
			vertical-align: unset;
			border: none;
			border-width: unset;
		}
		
		.slick-prev {
			left: -10.5rem;
			
			&::before {
				content: "Prev";
			}
			
			&::after {
				transform: translate(-50%, 0) rotate(180deg);
			}
		}
		
		.slick-next {
			right: -10.5rem;
			
			&::before {
				content: "Next";
			}
			
			&::after {
				transform: translate(-50%, 0) rotate(360deg);
			}
		}
	}
}

@media (-ms-high-contrast: none), (-ms-high-contrast: active), (-moz-touch-enabled: 0), (hover: hover) {
	.gallery .gallery_slider_nav .slick-prev:hover, .gallery .gallery_slider_nav .slick-next:hover {background-color: #21244f;}
}

@media only screen and (max-width:1500px) {
	.gallery .gallery_slider .slick-next {right: -4.5rem}
	.gallery .gallery_slider .slick-prev {left: -4.5rem}
	.gallery .gallery_slider .slick-prev::after, .gallery .gallery_slider .slick-next::after {width: 6rem;height: 6rem}
	.gallery .gallery_slider .slick-prev, .gallery .gallery_slider .slick-next {width: 6rem;height: 6rem}
}

@media only screen and (max-width:767px) {
	.gallery .gallery_slider_nav {width: calc(100% - 14rem)}
	.gallery .gallery_slider_nav .slider_item {height: 7rem}
	.gallery .gallery_slider_nav .slick-prev, .gallery .gallery_slider_nav .slick-next {width: 7rem}
	.gallery .gallery_slider_nav .slick-prev {left: -7rem}
	.gallery .gallery_slider_nav .slick-next {right: -7rem}
	.gallery .gallery_slider_nav .slick-prev::before, .gallery .gallery_slider_nav .slick-next::before {font-size: 1.4rem;top: 4.2rem}
	.gallery .gallery_slider_nav .slick-prev::after, .gallery .gallery_slider_nav .slick-next::after {background-size: 2rem 2rem;width: 2rem;height: 2rem;top: 1.6rem}
}
JavaScript
$('.gallery_slider').slick({
	slidesToShow: 1,
	slidesToScroll: 1,
	arrows: true,
	fade: true,
	draggable: false,
	asNavFor: '.gallery_slider_nav',
	responsive: [
		{
			breakpoint: 1401,
			settings: {
				arrows: false
			}
		}
	]
});

$('.gallery_slider_nav').slick({
	slidesToShow: 8,
	slidesToScroll: 1,
	dots: false,
	arrows: true,
	draggable: false,
	focusOnSelect: true,
	centerMode: false,
	asNavFor: '.gallery_slider',
	responsive: [
		{
			breakpoint: 1101,
			settings: {
				slidesToShow: 6,
				slidesToScroll: 1
			}
		},
		{
			breakpoint: 860,
			settings: {
				slidesToShow: 4,
				slidesToScroll: 1
			}
		},
		{
			breakpoint: 768,
			settings: {
				slidesToShow: 6,
				slidesToScroll: 1
			}
		},
		{
			breakpoint: 650,
			settings: {
				slidesToShow: 4,
				slidesToScroll: 1
			}
		},
		{
			breakpoint: 501,
			settings: {
				slidesToShow: 3,
				slidesToScroll: 1
			}
		},
		{
			breakpoint: 401,
			settings: {
				slidesToShow: 2,
				slidesToScroll: 1
			}
		}
	]
});