支持移动设备的纯Javascript画廊

jerry JQuery 2015年08月20日 收藏

这是一款不依赖任何js框架、纯javascript实现的画廊效果。它支持移动设备手势操作,如手势触摸滑动、放大和关闭图片,它还支持PC上的键盘操作,总之它是WEB开发者不可或缺的图片画廊插件,它叫photoswipe。

HTML

首先加载所需的CSS和js文件。

  1. <link rel="stylesheet" href="css/photoswipe.css">
  2. <link rel="stylesheet" href="css/default-skin/default-skin.css">
  3. <script src="js/photoswipe.min.js"></script>
  4. <script src="js/photoswipe-ui-default.min.js"></script>

以上文件大家不要担心,月光光都打包好了,您只管下载拿去用就是。

接下来,准备body里的HTML部分。我们在页面里准备图片缩略图,当点击这张缩略图时,会弹出对应的大图集,我们准备HTML结构如下:

  1. <div id="photos">
  2. <img src="images/s1_m.jpg" alt="Image description" />
  3. <p>图集</p>
  4. </div>

现在,重要的画廊展示部分将为大图展示提供架构,注意以下代码中的元素:.pswp__bg, .pswp__scroll-wrap, .pswp__container 和 .pswp__item这几个Div不可更改。

  1. <div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
  2. <div class="pswp__bg"></div>
  3. <div class="pswp__scroll-wrap">
  4. <div class="pswp__container">
  5. <div class="pswp__item"></div>
  6. <div class="pswp__item"></div>
  7. <div class="pswp__item"></div>
  8. </div>
  9. <div class="pswp__ui pswp__ui--hidden">
  10. <div class="pswp__top-bar">
  11. <div class="pswp__counter"></div>
  12. <button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
  13. <button class="pswp__button pswp__button--share" title="Share"></button>
  14. <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
  15. <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
  16. <div class="pswp__preloader">
  17. <div class="pswp__preloader__icn">
  18. <div class="pswp__preloader__cut">
  19. <div class="pswp__preloader__donut"></div>
  20. </div>
  21. </div>
  22. </div>
  23. </div>
  24. <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
  25. <div class="pswp__share-tooltip"></div>
  26. </div>
  27. <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
  28. </button>
  29. <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
  30. </button>
  31. <div class="pswp__caption">
  32. <div class="pswp__caption__center"></div>
  33. </div>
  34. </div>
  35. </div>
  36. </div>

以上HTML结构定义了画廊展示的内容、工具、方向按钮、标题说明等元素。

Javascript

我们在js里定义图集图片集合(当然也可以像demo2一样在html部分定义图片集),设置各种选项,然后通过使用new PhotoSwipe()来调用photoSwipe插件。

  1. var openPhotoSwipe = function() {
  2. var pswpElement = document.querySelectorAll('.pswp')[0];
  3. //定义图片集合
  4. var items = [
  5. {
  6. src: 'images/s1.jpg',
  7. w: 800,
  8. h: 1142
  9. },
  10. {
  11. src: 'images/s2.jpg',
  12. w: 800,
  13. h: 1142
  14. }
  15. ];
  16. var options = {
  17. history: false,
  18. focus: false,
  19. showAnimationDuration: 0,
  20. hideAnimationDuration: 0
  21. };
  22. var gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options);
  23. gallery.init();
  24. };
  25. //点击图集元素时触发调用openPhotoSwipe
  26. document.getElementById('photos').onclick = openPhotoSwipe;

大家可以将该款插件应用到移动项目中去,更多选项设置请参考PhotoSwipe项目地址:

下载地址