How to use photoswipe - 10 common examples

To help you get started, we’ve selected a few photoswipe examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github Uintra / Uintra / src / Uintra20 / Content / src / app / feature / reusable / ui-elements / image-gallery / image-gallery.service.ts View on Github external
//     {
    //         src: 'https://placekitten.com/1200/900',
    //         w: 1200,
    //         h: 900
    //     }
    // ];

    // define options (if needed)
    let options = {
        // optionName: 'option value'
        // for example:
        index: index // start at first slide
    };

    // Initializes and opens PhotoSwipe
    let gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options);
    gallery.init();
  }
}
github jirokun / survey-designer-js / lib / runtime / components / plain / ImagePopup.js View on Github external
$(this.el).on('click', 'img[data-popup-url]', (e) => {
      const $targets = $('#content').find('img[data-popup-url]');
      const urls = $targets.map((i, imgEl) => ({ src: $(imgEl).data('popup-url'), w: 0, h: 0 }));
      const items = urls.toArray();
      const options = {
        history: false,
        focus: false,
        showAnimationDuration: 0,
        hideAnimationDuration: 0,
      };

      const container = document.getElementsByClassName('pswp')[0];
      const gallery = new PhotoSwipe(container, PhotoSwipeUIDefault, items, options);
      gallery.listen('imageLoadComplete', (index, item) => {
        const img = new Image();
        img.onload = () => {
          // itemのwidth, heightが必須なのでここで設定する
          item.w = img.width;
          item.h = img.height;
          gallery.updateSize(true);
        };
        img.src = item.src;
      });

      gallery.init();
      gallery.listen('afterChange', () => {
        const target = $(this.el).find('img[data-popup-url]').filter((i, imgEl) => {
          const src = $(imgEl).data('popup-url');
          return src === gallery.currItem.src;
github kittn / generator-kittn / app / templates / src / skeletons / starterpack / general / js / init-photoswipe.js View on Github external
}
    } else {
      options.index = parseInt(index, 10);
    }

    // exit if index not found
    if( isNaN(options.index) ) {
      return;
    }

    if(disableAnimation) {
      options.showAnimationDuration = 0;
    }

    // Pass data to PhotoSwipe and initialize it
    gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options);
    gallery.init();
  };
github TaleLin / lin-cms-vue / src / components / base / preview / preview.vue View on Github external
const items = await this.transThumbnailElements()
      let photoSwipeOptions = {
        galleryUID: this.radom,
        getThumbBoundsFn: function(index) {
          let thumbnail = items[index].el
          let pageYScroll = window.pageYOffset || document.documentElement.scrollTop
          let rect = thumbnail.getBoundingClientRect()
          return {
            x: rect.left,
            y: rect.top + pageYScroll,
            w: rect.width,
          }
        },
        ...options,
      }
      this.gallery = new PhotoSwipe(pswpElement, PhotoSwipeUIDefault, items, photoSwipeOptions)
      this.gallery.init()
      loadingInstance.close()
      // Gallery starts closing
      this.gallery.listen('close', () => {
        if (this.gallery) {
          this.gallery.close()
          this.gallery = null
          this.slides = []
        }
        that.$emit('close')
      })
    },
    async getWH(elem) {
github bravelin / bravelin.github.io / source / src / components / Preview.vue View on Github external
isShow (newVal, oldVal) {
                const that = this
                if (newVal) {
                    let gallery = new PhotoSwipe(that.$el, PhotoSwipeUI, that.list, {
                        index: that.index || 0
                    })
                    gallery.init()
                    gallery.listen('close', () => { // 关闭的时候isShow置为false
                        that.$emit('update:isShow', false)
                    })
                }
            }
        },
github LS1231 / vue-preview / src / index.js View on Github external
} else {
                // in URL indexes start from 1
                photoSwipeOptions.index = parseInt(index, 10) - 1
              }
            } else {
              photoSwipeOptions.index = parseInt(index, 10)
            }
            // exit if index not found
            if (isNaN(photoSwipeOptions.index)) {
              return
            }
            if (disableAnimation) {
              photoSwipeOptions.showAnimationDuration = 0
            }
            // Pass data to PhotoSwipe and initialize it
            gallery = new PhotoSwipe(pswpElement, PhotoSwipeUIDefault, items, photoSwipeOptions)
            gallery.init()
            // Gallery starts closing
            gallery.listen('close', function () {
              self.$emit('close')
            })
          }
          // loop through all gallery elements and bind events
github rap2hpoutre / vue-picture-swipe / src / VuePictureSwipe.vue View on Github external
}
          } else {
            options.index = parseInt(index, 10);
          }

          // exit if index not found
          if (isNaN(options.index)) {
            return;
          }

          if (disableAnimation) {
            options.showAnimationDuration = 0;
          }

          // Pass data to PhotoSwipe and initialize it
          gallery = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, items, Object.assign(options, that.options));
          gallery.listen('gettingData', function(index, item) {
            if (item.w < 1 || item.h < 1) { // unknown size
              let img = new Image();
              img.onload = function() { // will get size after load
                item.w = this.width; // set image width
                item.h = this.height; // set image height
                gallery.invalidateCurrItems(); // reinit Items
                gallery.updateSize(true); // reinit Items
              };
              img.src = item.src; // let's download image
            }
          });
          gallery.init();
          that.pswp = gallery;
        };
github moulapp / moul / assets / ps.js View on Github external
}
		} else {
			options.index = parseInt(index, 10)
		}

		// exit if index not found
		if (isNaN(options.index)) {
			return
		}

		if (disableAnimation) {
			options.showAnimationDuration = 0
		}

		// Pass data to PhotoSwipe and initialize it
		gallery = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, items, options)
		gallery.init()
		// gallery.bg.style.backgroundColor = gallery.currItem.bgColor

		// gallery.listen('beforeChange', () => {
		//   gallery.bg.style.backgroundColor = gallery.currItem.bgColor
		// })
	}
github qious / gallery-server / assets / js / pswp.init.js View on Github external
}
    } else {
      options.index = parseInt(index, 10)
    }

    // exit if index not found
    if (isNaN(options.index)) {
      return
    }

    if (disableAnimation) {
      options.showAnimationDuration = 0
    }

    // Pass data to PhotoSwipe and initialize it
    let gallery = new PhotoSwipe(pswpElement, PhotoSwipeUIDefault, items, options)
    gallery.init()
  }
github devld / go-drive / web / src / views / HandlerViews / ImageView.vue View on Github external
initPhotoSwipe() {
      this.index = this.images.findIndex((f) => f.name === this.filename)
      const basePath = dir(this.path)
      const ps = new PhotoSwipe(
        this.$refs.ps,
        PhotoSwipeUIDefault,
        this.images.map((i) => ({
          src: fileUrl(pathJoin(basePath, i.name), i.meta.access_key),
          w: 0,
          h: 0,
        })),
        {
          history: false,
          index: this.index,
          loop: false,
        }
      )
      ps.listen('gettingData', (index, item) => {
        // https://github.com/dimsemenov/PhotoSwipe/issues/796
        if (item.w > 0 && item.h > 0) return

photoswipe

JavaScript gallery

MIT
Latest version published 5 months ago

Package Health Score

75 / 100
Full package analysis