PhotoSwipe support
This commit is contained in:
parent
ee6246379b
commit
aae34f128c
11 changed files with 278 additions and 1 deletions
103
static/css/pswp-gallery.css
Normal file
103
static/css/pswp-gallery.css
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
#rig {
|
||||
max-width:900px;
|
||||
margin:0 auto; /*center aligned*/
|
||||
padding:0;
|
||||
font-size:0; /* Remember to change it back to normal font size if have captions */
|
||||
list-style:none;
|
||||
}
|
||||
#rig figure {
|
||||
display: inline-block;
|
||||
*display:inline;/*for IE6 - IE7*/
|
||||
width:25%;
|
||||
vertical-align:middle;
|
||||
box-sizing:border-box;
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
/* The wrapper for each item */
|
||||
.rig-cell {
|
||||
margin:0 12px 12px 0;
|
||||
|
||||
box-shadow:0 0 6px rgba(0,0,0,0.3);
|
||||
display:block;
|
||||
position: relative;
|
||||
overflow:hidden;
|
||||
}
|
||||
|
||||
/* If have the image layer */
|
||||
.rig-img {
|
||||
display:block;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
border:none;
|
||||
transform:scale(1);
|
||||
transition:all 1s;
|
||||
}
|
||||
|
||||
#rig figure:hover .rig-img {
|
||||
transform:scale(1.05);
|
||||
}
|
||||
|
||||
/* If have the overlay layer */
|
||||
.rig-overlay {
|
||||
position: absolute;
|
||||
display:block;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
margin: auto;
|
||||
background: #3DC0F1;
|
||||
background-size:50px 50px;
|
||||
opacity:0;
|
||||
filter:alpha(opacity=0);/*For IE6 - IE8*/
|
||||
transition:all 0.6s;
|
||||
}
|
||||
#rig figure:hover .rig-overlay {
|
||||
opacity:0.8;
|
||||
}
|
||||
|
||||
/* If have captions */
|
||||
.rig-text {
|
||||
display:block;
|
||||
padding:0 30px;
|
||||
box-sizing:border-box;
|
||||
position:absolute;
|
||||
left:0;
|
||||
width:100%;
|
||||
text-align:center;
|
||||
text-transform:capitalize;
|
||||
font-size:18px;
|
||||
font-weight:bold;
|
||||
font-family: 'Oswald', sans-serif;
|
||||
font-weight:normal!important;
|
||||
top:40%;
|
||||
color:white;
|
||||
opacity:0;
|
||||
filter:alpha(opacity=0);/*For older IE*/
|
||||
transform:translateY(-20px);
|
||||
transition:all .3s;
|
||||
}
|
||||
#rig figure:hover .rig-text {
|
||||
transform:translateY(0px);
|
||||
opacity:0.9;
|
||||
}
|
||||
|
||||
@media (max-width: 9000px) {
|
||||
#rig figure {
|
||||
width:25%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 700px) {
|
||||
#rig figure {
|
||||
width:33.33%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 550px) {
|
||||
#rig figure {
|
||||
width:50%;
|
||||
}
|
||||
}
|
||||
BIN
static/img/hexagon-thumb.jpg
Normal file
BIN
static/img/hexagon-thumb.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
BIN
static/img/sphere-thumb.jpg
Normal file
BIN
static/img/sphere-thumb.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7 KiB |
BIN
static/img/triangle-thumb.jpg
Normal file
BIN
static/img/triangle-thumb.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
64
static/js/pswp-init.js
Normal file
64
static/js/pswp-init.js
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
/*
|
||||
Put this file in /static/js/pswp-init.js
|
||||
*/
|
||||
$( document ).ready(function() {
|
||||
var items = []; // array of slide objects that will be passed to PhotoSwipe()
|
||||
// for every figure element on the page:
|
||||
$('figure').each( function() {
|
||||
if ($(this).attr('class') == 'pswp-ignore') return true; // ignore any figures where class="pswp-ignore"
|
||||
// get properties from child a/img/figcaption elements,
|
||||
var $figure = $(this),
|
||||
$a = $figure.find('a'),
|
||||
$src = $a.attr('href'),
|
||||
$title = $figure.find('figcaption').html(),
|
||||
$msrc = $figure.find('img').attr('src');
|
||||
// if data-size on <a> tag is set, read it and create an item
|
||||
if ($a.data('size')) {
|
||||
var $size = $a.data('size').split('x');
|
||||
var item = {
|
||||
src : $src,
|
||||
w : $size[0],
|
||||
h : $size[1],
|
||||
title : $title,
|
||||
msrc : $msrc
|
||||
};
|
||||
// if not, set temp default size then load the image to check actual size
|
||||
} else {
|
||||
var item = {
|
||||
src : $src,
|
||||
w : 800, // temp default size
|
||||
h : 600, // temp default size
|
||||
title : $title,
|
||||
msrc : $msrc
|
||||
};
|
||||
// load the image to check its dimensions
|
||||
// update the item as soon as w and h are known (check every 30ms)
|
||||
var img = new Image();
|
||||
img.src = $src;
|
||||
var wait = setInterval(function() {
|
||||
var w = img.naturalWidth,
|
||||
h = img.naturalHeight;
|
||||
if (w && h) {
|
||||
clearInterval(wait);
|
||||
item.w = w;
|
||||
item.h = h;
|
||||
}
|
||||
}, 30);
|
||||
}
|
||||
// Save the index of this image then add it to the array
|
||||
var index = items.length;
|
||||
items.push(item);
|
||||
// Event handler for click on a figure
|
||||
$figure.on('click', function(event) {
|
||||
event.preventDefault(); // prevent the normal behaviour i.e. load the <a> hyperlink
|
||||
// Get the PSWP element and initialise it with the desired options
|
||||
var $pswp = $('.pswp')[0];
|
||||
var options = {
|
||||
index: index,
|
||||
bgOpacity: 0.8,
|
||||
showHideOpacity: true
|
||||
}
|
||||
new PhotoSwipe($pswp, PhotoSwipeUI_Default, items, options).init();
|
||||
});
|
||||
});
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue