PhotoSwipe 插件的使用

  PhotoSwipe 是一款图片预览插件,而且个人觉得自定义程度很高。这里总结下在vue中的使用。

使用
  • npm install photoswipe --save

  • 在页面中导入相应的 js 和 css等

      import PhotoSwipe from 'photoswipe'
      import PhotoSwipeUI_Default from 'photoswipe/dist/photoswipe-ui-default'
      import 'photoswipe/dist/photoswipe.css'
      import 'photoswipe/dist/default-skin/default-skin.css'
    
  • 相应的DOM结构

      <div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
        <!-- Background of PhotoSwipe. 
             It's a separate element, as animating opacity is faster than rgba(). -->
        <div class="pswp__bg"></div>
        <!-- Slides wrapper with overflow:hidden. -->
        <div class="pswp__scroll-wrap">
          <!-- Container that holds slides. PhotoSwipe keeps only 3 slides in DOM to save memory. -->
          <div class="pswp__container">
            <!-- don't modify these 3 pswp__item elements, data is added later on -->
            <div class="pswp__item"></div>
            <div class="pswp__item"></div>
            <div class="pswp__item"></div>
          </div>
    
          <!-- Default (PhotoSwipeUI_Default) interface on top of sliding area. Can be changed. -->
          <div class="pswp__ui pswp__ui--hidden">
            <div class="pswp__top-bar">
              <!--  Controls are self-explanatory. Order can be changed. -->
              <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>
    
              <!-- Preloader demo http://codepen.io/dimsemenov/pen/yyBWoR -->
              <!-- element will get class pswp__preloader--active when preloader is running -->
              <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>
    
  • 初始化

      let pswpElement = document.querySelectorAll('.pswp')[0]
      let items = [
        {
          src: 'https://placekitten.com/600/400',
          w: 600,
          h: 400
        },
        {
          src: 'https://placekitten.com/1200/900',
          w: 1200,
          h: 900
        }
      ]
      let options = {
        index: 1,
        history: false
      }
    
      let gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options)
      gallery.init()
    
自定义的使用
  • 可以在类名为 pswp__top-bar 的标签下自定义一些自己的内容即可
posted @ 2022-03-08 21:21  攻城Alone  阅读(1162)  评论(0)    收藏  举报