Skip to content

Instantly share code, notes, and snippets.

@3h5a9
Created October 21, 2017 18:05
Show Gist options
  • Save 3h5a9/21551df982dfb2d35cd1797c7a8f5f4b to your computer and use it in GitHub Desktop.
Save 3h5a9/21551df982dfb2d35cd1797c7a8f5f4b to your computer and use it in GitHub Desktop.
problem in gallery.
<section class="panel" id="fourth">
<div class="intro color2">
<h2 class="major">Few of my works</h2>
<p>Sed vel nibh libero. Mauris et lorem pharetra massa lorem turpis congue pulvinar. Vivamus sed feugiat finibus. Duis amet bibendum amet sed. Duis mauris ex, dapibus sed ligula tempus volutpat magna etiam.</p>
</div>
<div class="gallery">
<div class="group span-3">
<a href="images/gallery/fulls/01.jpg" class="image filtered span-3" data-position="bottom" alt="This is a test sentense.">
<img src="images/gallery/thumbs/01.jpg" alt="" />
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repudiandae, similique, natus? Vero quisquam aperiam ipsa esse vitae voluptatum, obcaecati expedita illum consequuntur autem non nihil, voluptate maiores suscipit saepe magnam.</p>
</a>
<a href="images/gallery/fulls/02.jpg" class="image filtered span-1-5" data-position="center">
<img src="images/gallery/thumbs/02.jpg" alt="" />
</a>
<a href="images/gallery/fulls/03.jpg" class="image filtered span-1-5" data-position="bottom">
<img src="images/gallery/thumbs/03.jpg" alt="" />
</a>
</div>
<a href="images/gallery/fulls/04.jpg" class="image filtered span-2-5" data-position="top"><img src="images/gallery/thumbs/04.jpg" alt="" />
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Modi quae velit, esse culpa voluptas placeat, enim, maiores numquam fugit expedita sed in quia quibusdam magnam animi aspernatur minus eligendi vitae.</p></a>
<div class="group span-4-5">
<a href="images/gallery/fulls/05.jpg" class="image filtered span-3" data-position="top"><img src="images/gallery/thumbs/05.jpg" alt="" /></a>
<a href="images/gallery/fulls/06.jpg" class="image filtered span-1-5" data-position="center"><img src="images/gallery/thumbs/06.jpg" alt="" /></a>
<a href="images/gallery/fulls/07.jpg" class="image filtered span-1-5" data-position="bottom"><img src="images/gallery/thumbs/07.jpg" alt="" /></a>
<a href="images/gallery/fulls/08.jpg" class="image filtered span-3" data-position="top"><img src="images/gallery/thumbs/08.jpg" alt="" /></a>
</div>
<a href="images/gallery/fulls/09.jpg" class="image filtered span-2-5" data-position="right"><img src="images/gallery/thumbs/09.jpg" alt="" /></a>
</div>
</section>
// Gallery.
$('.gallery')
.on('click', 'a', function(event) {
var $a = $(this),
$gallery = $a.parents('.gallery'),
$modal = $gallery.children('.modal'),
$modalImg = $modal.find('img'),
href = $a.attr('href');
// Not an image? Bail.
if (!href.match(/\.(jpg|gif|png|mp4)$/))
return;
// Prevent default.
event.preventDefault();
event.stopPropagation();
// Locked? Bail.
if ($modal[0]._locked)
return;
// Lock.
$modal[0]._locked = true;
// Set src.
$modalImg.attr('src', href);
// Set visible.
$modal.addClass('visible');
// Focus.
$modal.focus();
// Delay.
setTimeout(function() {
// Unlock.
$modal[0]._locked = false;
}, 600);
})
.on('click', '.modal', function(event) {
var $modal = $(this),
$modalImg = $modal.find('img');
// Locked? Bail.
if ($modal[0]._locked)
return;
// Already hidden? Bail.
if (!$modal.hasClass('visible'))
return;
// Stop propagation.
event.stopPropagation();
// Lock.
$modal[0]._locked = true;
// Clear visible, loaded.
$modal
.removeClass('loaded')
// Delay.
setTimeout(function() {
$modal
.removeClass('visible')
// Pause scroll zone.
$wrapper.triggerHandler('---pauseScrollZone');
setTimeout(function() {
// Clear src.
$modalImg.attr('src', '');
// Unlock.
$modal[0]._locked = false;
// Focus.
$body.focus();
}, 475);
}, 125);
})
.on('keypress', '.modal', function(event) {
var $modal = $(this);
// Escape? Hide modal.
if (event.keyCode == 27)
$modal.trigger('click');
})
.on('mouseup mousedown mousemove', '.modal', function(event) {
// Stop propagation.
event.stopPropagation();
})
.prepend('<div class="modal" tabIndex="-1"><div class="inner"><img src="" /></div></div>')
.find('img')
.on('load', function(event) {
var $modalImg = $(this),
$modal = $modalImg.parents('.modal');
setTimeout(function() {
// No longer visible? Bail.
if (!$modal.hasClass('visible'))
return;
// Set loaded.
$modal.addClass('loaded');
}, 275);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment