纯JavaScript实现支持移动手势的PhotoSwipe图片画廊

作者:闭包旅人

时间:2026-10-29

浏览:211

本文介绍了一款名为PhotoSwipe的纯JavaScript实现图片画廊插件。该库不依赖任何JS框架,原生支持移动设备的手势操作(如触摸滑动、缩放)及PC端键盘控制。文章详细解析了HTML结构配置、CSS/JS文件加载及核心JavaScript初始化代码,帮助开发者快速集成高性能的图片浏览功能。

文章目录

PhotoSwipe画廊插件介绍

这是一款完全基于原生JavaScript开发的图片展示组件,无需依赖任何第三方JS框架。它原生支持移动设备的手势交互,包括触摸滑动、图片放大以及关闭操作,同时也兼容PC端的键盘快捷键。作为Web开发中实用的图片浏览工具,该组件被称为PhotoSwipe。

具体效果展示如下:

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实现支持移动设备画廊的完整内容,希望这对您有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章