本文介绍了一款名为PhotoSwipe的纯JavaScript实现图片画廊插件。该库不依赖任何JS框架,原生支持移动设备的手势操作(如触摸滑动、缩放)及PC端键盘控制。文章详细解析了HTML结构配置、CSS/JS文件加载及核心JavaScript初始化代码,帮助开发者快速集成高性能的图片浏览功能。
PhotoSwipe画廊插件介绍
这是一款完全基于原生JavaScript开发的图片展示组件,无需依赖任何第三方JS框架。它原生支持移动设备的手势交互,包括触摸滑动、图片放大以及关闭操作,同时也兼容PC端的键盘快捷键。作为Web开发中实用的图片浏览工具,该组件被称为PhotoSwipe。
具体效果展示如下:

查看演示 下载源码
HTML与资源引入配置
HTML结构配置
首先需要在页面中引入必要的CSS样式表和JavaScript脚本文件。
<link rel="stylesheet" href="css/photoswipe.css">
<link rel="stylesheet" href="css/default-skin/default-skin.css">
<script src="js/photoswipe.min.js"></script>
<script src="js/photoswipe-ui-default.min.js"></script>
上述依赖文件已打包整理,开发者可直接下载并使用。
接下来配置body标签内的HTML结构。页面中需预设图片缩略图,当用户点击缩略图时,将弹出对应的大图集预览。具体结构如下:
HTML代码结构示例:
<div id="photos">
<img src="images/s1_m.jpg" alt="Image description" />
<p>图集</p>
</div>
在画廊展示部分,大图预览区域提供了基础架构。请注意代码中以下元素:.pswp__bg、.pswp__scroll-wrap、.pswp__container 和 .pswp__item,这些Div元素的结构不可随意更改。
<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--share" title="Share"></button>
<button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></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>
上述HTML结构定义了画廊的内容容器、工具栏、方向导航按钮以及标题说明等关键元素。
JavaScript初始化与调用
JavaScript逻辑实现
在JS代码中,我们可以定义图集图片集合(也可参照demo2在HTML中直接定义),并配置各项参数选项。最后,通过实例化 new PhotoSwipe() 来调用PhotoSwipe插件。
var openPhotoSwipe = function() {
var pswpElement = document.querySelectorAll('.pswp')[0];
//定义图片集合
var items = [
{
src: 'images/s1.jpg',
w: 800,
h: 1142
},
{
src: 'images/s2.jpg',
w: 800,
h: 1142
}
];
var options = {
history: false,
focus: false,
showAnimationDuration: 0,
hideAnimationDuration: 0
};
var gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options);
gallery.init();
};
//点击图集元素时触发调用openPhotoSwipe
document.getElementById('photos').onclick = openPhotoSwipe;
开发者可将此插件应用于移动端项目,更多高级选项配置请参考PhotoSwipe官方项目地址:<https://github.com/dimsemenov/photoswipe。
以上即为JavaScript实现支持移动设备画廊的完整内容,希望这对您有所帮助。