Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save bharathjinka09/20c93c50a2fe933a1da03d8cae584838 to your computer and use it in GitHub Desktop.
Save bharathjinka09/20c93c50a2fe933a1da03d8cae584838 to your computer and use it in GitHub Desktop.
ecoomerce product zoom with thumbnail and slider
<div class="pdp-image-gallery-block">
<!-- Gallery -->
<div class="gallery_pdp_container">
<div id="gallery_pdp">
<a href="#" data-image="https://icodefy.com/Tools/iZoom/images/small/image1.png" data-zoom-image="https://icodefy.com/Tools/iZoom/images/large/image1.jpg">
<img id="" src="https://icodefy.com/Tools/iZoom/images/thumb/image1.jpg" />
</a>
<a href="#" data-image="https://icodefy.com/Tools/iZoom/images/small/image2.png" data-zoom-image="https://icodefy.com/Tools/iZoom/images/large/image2.jpg">
<img id="" src="https://icodefy.com/Tools/iZoom/images/thumb/image2.jpg" />
</a>
<a href="#" data-image="https://icodefy.com/Tools/iZoom/images/small/image3.png" data-zoom-image="https://icodefy.com/Tools/iZoom/images/large/image3.jpg">
<img id="" src="https://icodefy.com/Tools/iZoom/images/thumb/image3.jpg" />
</a>
<a href="#" data-image="https://icodefy.com/Tools/iZoom/images/small/image4.png" data-zoom-image="https://icodefy.com/Tools/iZoom/images/large/image4.jpg">
<img id="" src="https://icodefy.com/Tools/iZoom/images/thumb/image4.jpg" />
</a>
<a href="#" data-image="https://icodefy.com/Tools/iZoom/images/small/image1.png" data-zoom-image="https://icodefy.com/Tools/iZoom/images/large/image1.jpg">
<img id="" src="https://icodefy.com/Tools/iZoom/images/thumb/image1.jpg" />
</a>
<a href="#" data-image="https://icodefy.com/Tools/iZoom/images/small/image2.png" data-zoom-image="https://icodefy.com/Tools/iZoom/images/large/image2.jpg">
<img id="" src="https://icodefy.com/Tools/iZoom/images/thumb/image2.jpg" />
</a>
<a href="#" data-image="images/small/image3.png" data-zoom-image="https://icodefy.com/Tools/iZoom/images/large/image3.jpg">
<img id="" src="https://icodefy.com/Tools/iZoom/images/thumb/image3.jpg" />
</a>
<a href="#" data-image="images/small/image4.png" data-zoom-image="https://icodefy.com/Tools/iZoom/images/large/image4.jpg">
<img id="" src="https://icodefy.com/Tools/iZoom/images/thumb/image4.jpg" />
</a>
</div>
<!-- Up and down button for vertical carousel -->
<a href="#" id="ui-carousel-next" style="display: inline;"></a>
<a href="#" id="ui-carousel-prev" style="display: inline;"></a>
</div>
<!-- Gallery -->
<!-- gallery Viewer -->
<div class="gallery-viewer">
<img id="zoom_10" src="https://icodefy.com/Tools/iZoom/images/small/image1.png" data-zoom-image="https://icodefy.com/Tools/iZoom/images/large/image1.jpg" href="https://icodefy.com/Tools/iZoom/images/large/image1.jpg" />
</div>
</div>
// JavaScript Document
function isDevice() {
return ((/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(navigator.userAgent.toLowerCase())))
}
function initZoom(width, height) {
$.removeData('#zoom_10', 'elevateZoom');
$('.zoomContainer').remove();
$('.zoomWindowContainer').remove();
$("#zoom_10").elevateZoom({
responsive: true,
tint: true,
tintColour: '#E84C3C',
tintOpacity: 0.5,
easing: true,
borderSize: 0,
lensSize: 100,
constrainType: "height",
loadingIcon: "https://icodefy.com/Tools/iZoom/images/loading.GIF",
containLensZoom: false,
zoomWindowPosition: 1,
zoomWindowOffetx: 20,
zoomWindowWidth: width,
zoomWindowHeight: height,
gallery: 'gallery_pdp',
galleryActiveClass: "active",
zoomWindowFadeIn: 500,
zoomWindowFadeOut: 500,
lensFadeIn: 500,
lensFadeOut: 500,
cursor: "https://icodefy.com/Tools/iZoom/images/zoom-out.png",
});
}
$(document).ready(function() {
/* init vertical carousel if thumb image length greater that 4 */
if ($("#gallery_pdp a").length > 4) {
$("#gallery_pdp a").css("margin", "0");
$("#gallery_pdp").rcarousel({
orientation: "vertical",
visible: 4,
width: 105,
height: 70,
margin: 5,
step: 1,
speed: 500,
});
$("#ui-carousel-prev").show();
$("#ui-carousel-next").show();
}
/* Init Product zoom */
initZoom(500, 475);
$("#ui-carousel-prev").click(function() {
initZoom(500, 475);
});
$("#ui-carousel-next").click(function() {
initZoom(500, 475);
});
// $(".zoomContainer").width($("#zoom_10").width());
// $("body").delegate(".fancybox-inner .mega_enl", "click", function() {
// $(this).html("");
// $(this).hide();
// });
// $('#gallery_pdp img').click((e) => {
// console.log(e)
// })
});
$(window).resize(function() {
var docWidth = $(document).width();
if (docWidth > 769) {
initZoom(500, 475);
} else {
$.removeData('#zoom_10', 'elevateZoom');
$('.zoomContainer').remove();
$('.zoomWindowContainer').remove();
$("#zoom_10").elevateZoom({
responsive: true,
tint: false,
tintColour: '#3c3c3c',
tintOpacity: 0.5,
easing: true,
borderSize: 0,
loadingIcon: "https://icodefy.com/Tools/iZoom/images/loading.GIF",
zoomWindowPosition: "productInfoContainer",
zoomWindowWidth: 330,
gallery: 'gallery_pdp',
galleryActiveClass: "active",
zoomWindowFadeIn: 500,
zoomWindowFadeOut: 500,
lensFadeIn: 500,
lensFadeOut: 500,
cursor: "https://icodefy.com/Tools/iZoom/images/zoom-out.png",
});
}
})
$(document).ready(function() {
$("#zoom_10").fancybox();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://icodefy.com/Tools/iZoom/js/Vendor/jquery/jquery-ui.min.js"></script>
<script src="https://icodefy.com/Tools/iZoom/js/Vendor/ui-carousel/ui-carousel.js"></script>
<script src="https://codepen.io/ranz/pen/rEaJNW"></script>
<script src="https://codepen.io/ranz/pen/KjwyjG"></script>
/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
.fancybox-wrap,
.fancybox-skin,
.fancybox-outer,
.fancybox-inner,
.fancybox-image,
.fancybox-wrap iframe,
.fancybox-wrap object,
.fancybox-nav,
.fancybox-nav span,
.fancybox-tmp
{
padding: 0;
margin: 0;
border: 0;
outline: none;
vertical-align: top;
}
.fancybox-wrap {
position: absolute;
top: 0;
left: 0;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
z-index: 8020;
}
.fancybox-skin {
position: relative;
background: #f9f9f9;
color: #444;
text-shadow: none;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.fancybox-opened {
z-index: 8030;
}
.fancybox-opened .fancybox-skin {
-webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
-moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
}
.fancybox-outer, .fancybox-inner {
position: relative;
}
.fancybox-inner {
overflow: hidden;
}
.fancybox-type-iframe .fancybox-inner {
-webkit-overflow-scrolling: touch;
}
.fancybox-error {
color: #444;
font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
margin: 0;
padding: 15px;
white-space: nowrap;
}
.fancybox-image, .fancybox-iframe {
display: block;
width: 100%;
height: 100%;
}
.fancybox-image {
max-width: 100%;
max-height: 100%;
}
#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
background-image: url(fancybox_sprite.png);
}
#fancybox-loading {
position: fixed;
top: 50%;
left: 50%;
margin-top: -22px;
margin-left: -22px;
background-position: 0 -108px;
opacity: 0.8;
cursor: pointer;
z-index: 8060;
}
#fancybox-loading div {
width: 44px;
height: 44px;
background: url(fancybox_loading.gif) center center no-repeat;
}
.fancybox-close {
position: absolute;
top: -18px;
right: -18px;
width: 36px;
height: 36px;
cursor: pointer;
z-index: 8040;
}
.fancybox-nav {
position: absolute;
top: 0;
width: 40%;
height: 100%;
cursor: pointer;
text-decoration: none;
background: transparent url(blank.gif); /* helps IE */
-webkit-tap-highlight-color: rgba(0,0,0,0);
z-index: 8040;
}
.fancybox-prev {
left: 0;
}
.fancybox-next {
right: 0;
}
.fancybox-nav span {
position: absolute;
top: 50%;
width: 36px;
height: 34px;
margin-top: -18px;
cursor: pointer;
z-index: 8040;
visibility: hidden;
}
.fancybox-prev span {
left: 10px;
background-position: 0 -36px;
}
.fancybox-next span {
right: 10px;
background-position: 0 -72px;
}
.fancybox-nav:hover span {
visibility: visible;
}
.fancybox-tmp {
position: absolute;
top: -99999px;
left: -99999px;
max-width: 99999px;
max-height: 99999px;
overflow: visible !important;
}
/* Overlay helper */
.fancybox-lock {
overflow: visible !important;
width: auto;
}
.fancybox-lock body {
overflow: hidden !important;
}
.fancybox-lock-test {
overflow-y: hidden !important;
}
.fancybox-overlay {
position: absolute;
top: 0;
left: 0;
overflow: hidden;
display: none;
z-index: 8010;
background: rgba(0,0,0,0.5);
}
.fancybox-overlay-fixed {
position: fixed;
bottom: 0;
right: 0;
}
.fancybox-lock .fancybox-overlay {
overflow: auto;
overflow-y: scroll;
}
/* Title helper */
.fancybox-title {
visibility: hidden;
font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;
position: relative;
text-shadow: none;
z-index: 8050;
}
.fancybox-opened .fancybox-title {
visibility: visible;
}
.fancybox-title-float-wrap {
position: absolute;
bottom: 0;
right: 50%;
margin-bottom: -35px;
z-index: 8050;
text-align: center;
}
.fancybox-title-float-wrap .child {
display: inline-block;
margin-right: -100%;
padding: 2px 20px;
background: transparent; /* Fallback for web browsers that doesn't support RGBa */
background: rgba(0, 0, 0, 0.8);
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
text-shadow: 0 1px 2px #222;
color: #FFF;
font-weight: bold;
line-height: 24px;
white-space: nowrap;
}
.fancybox-title-outside-wrap {
position: relative;
margin-top: 10px;
color: #fff;
}
.fancybox-title-inside-wrap {
padding-top: 10px;
}
.fancybox-title-over-wrap {
position: absolute;
bottom: 0;
left: 0;
color: #fff;
padding: 10px;
background: #000;
background: rgba(0, 0, 0, .8);
}
/*Retina graphics!*/
@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
only screen and (min--moz-device-pixel-ratio: 1.5),
only screen and (min-device-pixel-ratio: 1.5){
#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span {
background-image: url(https://fancyapps.com/fancybox/source/fancybox_sprite.png);
background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/
}
#fancybox-loading div {
background-image: url(https://fancyapps.com/fancybox/source/fancybox_loading@2x.gif);
background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/
}
}
.gallery-viewer {
margin-top: 30px !important;
margin-bottom: 0 !important;
}
<link href="https://icodefy.com/Tools/iZoom/js/Vendor/fancybox/helpers/jquery.fancybox-thumbs.css" rel="stylesheet" />
<link href="https://icodefy.com/Tools/iZoom/css/zoom.css" rel="stylesheet" />
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment