Skip to content

Commit fd875e3

Browse files
committed
added zoom options
1 parent d6823f7 commit fd875e3

File tree

4 files changed

+264
-209
lines changed

4 files changed

+264
-209
lines changed

assets/css/main.css

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1236,7 +1236,8 @@ input[type="radio"] + label:before {
12361236
margin: 0 0 2em 0;
12371237
width: 100%; }
12381238
.image.fit img {
1239-
width: 100%; }
1239+
width: 100%;
1240+
}
12401241
.image.main {
12411242
display: block;
12421243
margin: 0 0 3em 0;

assets/js/photoswipe-init.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import PhotoSwipeLightbox from 'https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/photoswipe-lightbox.esm.min.js';
2+
3+
// Find all gallery containers on the page
4+
const galleries = document.querySelectorAll('.pswp-gallery');
5+
6+
galleries.forEach(gallery => {
7+
const lightbox = new PhotoSwipeLightbox({
8+
gallery: `#${gallery.id}`,
9+
children: 'a',
10+
mouseMovePan: true,
11+
initialZoomLevel: 'fit',
12+
secondaryZoomLevel: 3,
13+
maxZoomLevel: 10,
14+
pswpModule: () => import('https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/photoswipe.esm.min.js')
15+
});
16+
17+
// Add custom caption support
18+
lightbox.on('uiRegister', function() {
19+
lightbox.pswp.ui.registerElement({
20+
name: 'custom-caption',
21+
order: 9,
22+
isButton: false,
23+
appendTo: 'root',
24+
html: 'Caption text',
25+
onInit: (el, pswp) => {
26+
lightbox.pswp.on('change', () => {
27+
const currSlideElement = lightbox.pswp.currSlide.data.element;
28+
let captionHTML = '';
29+
if (currSlideElement) {
30+
captionHTML = currSlideElement.getAttribute('data-pswp-caption') ||
31+
currSlideElement.querySelector('img').getAttribute('alt') || '';
32+
}
33+
el.innerHTML = captionHTML;
34+
});
35+
}
36+
});
37+
});
38+
39+
lightbox.init();
40+
});

experiments/cat.html

Lines changed: 9 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,10 @@ <h2>Results Gallery</h2>
5555
<div id="cat-gallery" class="pswp-gallery">
5656

5757
<h3>Flux Pro Result</h3>
58-
<span class="image main"><img src="../images/cat_zoom/flux.png" alt="Flux Pro" /></span>
58+
<span class="image main"><a href="../images/cat_zoom/flux.png" data-pswp-width="1392" data-pswp-height="752" data-pswp-caption="Flux Pro result with optimized configurations" target="_blank">
59+
<img src="../images/cat_zoom/flux.png" alt="Flux Pro" />
60+
</a>
61+
</span>
5962

6063
<h3>Baseline Configurations</h3>
6164
<div class="row">
@@ -290,6 +293,10 @@ <h2>Generation Timings</h2>
290293
</tbody>
291294
</table>
292295
</div>
296+
<ul class="actions">
297+
<li><a href="clay-rider.html" class="button primary">Next: Clay Rider</a></li>
298+
<li><a href="intro.html" class="button">Intro</a></li>
299+
</ul>
293300
</section>
294301

295302
</div>
@@ -341,41 +348,6 @@ <h2>Menu</h2>
341348
<script src="../assets/js/breakpoints.min.js"></script>
342349
<script src="../assets/js/util.js"></script>
343350
<script src="../assets/js/main.js"></script>
351+
<script type="module" src="../assets/js/photoswipe-init.js"></script>
344352
<script type="module">
345-
import PhotoSwipeLightbox from 'https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/photoswipe-lightbox.esm.min.js';
346-
347-
const options = {
348-
gallery: '#cat-gallery',
349-
children: 'a',
350-
pswpModule: () => import('https://cdnjs.cloudflare.com/ajax/libs/photoswipe/5.4.4/photoswipe.esm.min.js')
351-
};
352-
353-
const lightbox = new PhotoSwipeLightbox(options);
354-
355-
// Add custom caption support
356-
lightbox.on('uiRegister', function() {
357-
lightbox.pswp.ui.registerElement({
358-
name: 'custom-caption',
359-
order: 9,
360-
isButton: false,
361-
appendTo: 'root',
362-
html: 'Caption text',
363-
onInit: (el, pswp) => {
364-
lightbox.pswp.on('change', () => {
365-
const currSlideElement = lightbox.pswp.currSlide.data.element;
366-
let captionHTML = '';
367-
if (currSlideElement) {
368-
// Get caption from data-pswp-caption attribute
369-
captionHTML = currSlideElement.getAttribute('data-pswp-caption') ||
370-
currSlideElement.querySelector('img').getAttribute('alt') || '';
371-
}
372-
el.innerHTML = captionHTML;
373-
});
374-
}
375-
});
376-
});
377-
378-
lightbox.init();
379-
</script>
380-
381353

0 commit comments

Comments
 (0)