?PhotoSwipe.js傳入圖片URL的同時,還需要配上圖片的寬高,但這次的情況是無法預(yù)先知道寬高,所以先設(shè)置寬高100,然后查看或劃動下一張圖片的時候再更新當(dāng)前圖片寬高信息。
下面是做法:
<link rel="stylesheet prefetch" href="js/PhotoSwipe-master/dist/photoswipe.css">
<link rel="stylesheet prefetch" href="js/PhotoSwipe-master/dist/default-skin/default-skin.css">
<script src="js/jquery.min.js"></script>
<script src="js/PhotoSwipe-master/dist/photoswipe.js"></script>
<script src="js/PhotoSwipe-master/dist/photoswipe-ui-default.min.js"></script>
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
<div class="pswp__bg"></div>
<div class="pswp__scroll-wrap">
<div class="pswp__container">
<div class="pswp__item"></div>
<div class="pswp__item"></div>
<div class="pswp__item"></div>
</div>
<div class="pswp__ui pswp__ui--hidden">
<div class="pswp__top-bar">
<div class="pswp__counter"></div>
<button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
<button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
<div class="pswp__preloader">
<div class="pswp__preloader__icn">
<div class="pswp__preloader__cut">
<div class="pswp__preloader__donut"></div>
</div>
</div>
</div>
</div>
<div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
<div class="pswp__share-tooltip"></div>
</div>
<button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
</button>
<button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
</button>
<div class="pswp__caption">
<div class="pswp__caption__center"></div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
var pswpElement = document.querySelectorAll('.pswp')[0];
var pswp =null;
var data= {
startIndex:"",
data: [{src:'a.png',w:'200',h:'200',updfsize:0},{src:'b.png',w:'200',h:'200',updfsize:0}]
}
function img_obj(index){
var imageSrc = data.data[index].src;
var theImage = new Image();
theImage.src = imageSrc;
theImage.onload=function(){
data.data[index].src=imageSrc;
data.data[index].w=theImage.width;
data.data[index].h=theImage.height;
data.data[index].updfsize=1;
theImage=undefined;
pswp.updateSize(true);
}
}
function openPhotoViewer(file_url, ix) {
var items = data.data;
var options = {
index: ix,
shareButtons: false
};
pswp = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, items, options);
pswp.listen('afterChange', function() {
var currentIndex = pswp.getCurrentIndex();
var currentItem = pswp.getItemAt(currentIndex);
var currentWidth = currentItem.w;
var currentHeight = currentItem.h;
var currentSrc = currentItem.src;
var updfsize = currentItem.updfsize;
if(updfsize==0){
img_obj(currentIndex);
}
});
pswp.init();
}
openPhotoViewer('b.png',1)
</script>
該文章在 2024/12/18 15:58:23 編輯過