mirror of
https://github.com/CaiJimmy/hugo-theme-stack.git
synced 2025-04-29 03:53:30 +08:00
refactor(gallery): add openGallery method
This commit is contained in:
parent
2e1633b807
commit
7ca67456b4
@ -115,6 +115,22 @@ class StackGallery {
|
|||||||
return Promise.all(tasks);
|
return Promise.all(tasks);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private openGallery(index: number) {
|
||||||
|
const pswp = document.querySelector('.pswp') as HTMLDivElement;
|
||||||
|
const ps = new window.PhotoSwipe(pswp, window.PhotoSwipeUI_Default, this.items, {
|
||||||
|
index: index,
|
||||||
|
getThumbBoundsFn: (index) => {
|
||||||
|
const thumbnail = this.items[index].el.getElementsByTagName('img')[0],
|
||||||
|
pageYScroll = window.pageYOffset || document.documentElement.scrollTop,
|
||||||
|
rect = thumbnail.getBoundingClientRect();
|
||||||
|
|
||||||
|
return { x: rect.left, y: rect.top + pageYScroll, w: rect.width };
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
ps.init();
|
||||||
|
}
|
||||||
|
|
||||||
private initPS() {
|
private initPS() {
|
||||||
const pswp = document.querySelector('.pswp') as HTMLDivElement;
|
const pswp = document.querySelector('.pswp') as HTMLDivElement;
|
||||||
pswp.style.removeProperty('display');
|
pswp.style.removeProperty('display');
|
||||||
@ -124,20 +140,7 @@ class StackGallery {
|
|||||||
|
|
||||||
a.addEventListener('click', (e) => {
|
a.addEventListener('click', (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
this.openGallery(index);
|
||||||
const pswp = document.querySelector('.pswp') as HTMLDivElement;
|
|
||||||
const ps = new window.PhotoSwipe(pswp, window.PhotoSwipeUI_Default, this.items, {
|
|
||||||
index: index,
|
|
||||||
getThumbBoundsFn: (index) => {
|
|
||||||
const thumbnail = this.items[index].el.getElementsByTagName('img')[0],
|
|
||||||
pageYScroll = window.pageYOffset || document.documentElement.scrollTop,
|
|
||||||
rect = thumbnail.getBoundingClientRect();
|
|
||||||
|
|
||||||
return { x: rect.left, y: rect.top + pageYScroll, w: rect.width };
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
ps.init();
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user