a Vue plugin for PhotoSwipe without set image size
npm install vue-pswipe
// main.js
import Photoswipe from 'vue-pswipe'
Vue.use(Photoswipe, options)
see complete options
you can set v-pswp directive in element to mark as clickable
<Photoswipe>
<img
:src="https://github.com/GuoQichen/vue-pswipe/raw/v0.15.3/imageSrc"
v-pswp="imageSrc"
/>
</Photoswipe>
| Property | Type | Description | Default |
|---|---|---|---|
| options | object | original PhotoSwipe options, see complete options | - |
| auto | boolean | automatically collect all img tags without the need for the v-pswp directive |
false |
| bubble | boolean | allow click event bubbling | false |
| lazy | boolean | lazy loading image, you can set to false to preload all image | true |
| rotate | boolean | add a rotate action button to the top bar, allow user to rotate the current image | false |
v-pswp: object|stringuse for mark current element as gallery item, accept image src or options object
Directive Options:
interface PswpDirectiveOptions {
/**
* path to image
*/
src: string
/**
* image size, 'width x height', eg: '100x100'
*/
size?: string
/**
* small image placeholder,
* main (large) image loads on top of it,
* if you skip this parameter - grey rectangle will be displayed,
* try to define this property only when small image was loaded before
*/
msrc?: string
/**
* used by Default PhotoSwipe UI
* if you skip it, there won't be any caption
*/
title?: string
/**
* to make URLs to a single image look like this: http://example.com/#&gid=1&pid=custom-first-id
* instead of: http://example.com/#&gid=1&pid=1
* enable options history: true, galleryPIDs: true and add pid (unique picture identifier)
*/
pid?: string | number
}
beforeOpenemit after click thumbnail, if listen to this event, next function must be called to resolve this hook
Parameters:
- event:
- index: current image index
- target: the target that triggers effective click event
- next:
must be called to resolve the hook. `next(false)` will abort open PhotoSwipe
openedemit after photoswipe init, you can get current active photoswipe instance by parameter
Parameters:
- pswp:
current photoswipe instance
support all original PhotoSwipe events, see original event, eg:
<Photoswipe @beforeChange="handleBeforeChange">
<img
:src="https://github.com/GuoQichen/vue-pswipe/raw/v0.15.3/imageSrc"
v-pswp="imageSrc"
/>
</Photoswipe>
In addition to using the <Photoswipe> tag, you can also use Vue.prototype.$Pswp.open(params) to directly open a PhotoSwipe. This is especially useful in the case of Custom HTML Content in Slides.
<template>
<button @click="handleClick">open</button>
</template>
<script>
export default {
methods: {
handleClick() {
this.$Pswp.open({
items: [
{
html: '
hello vue-pswipe
'
}
]
})
}
}
}
</script>
Vue.prototyp.$Pswp.open:
type Open = (params: {
items: PswpItem[],
options?: PswpOptions
}) => pswp
But cannot use vue.prototype.$Pswp.open()
<script>
export default {
components: {
Photoswipe: () => import('vue-pswipe')
.then(({ Photoswipe }) => Photoswipe)
}
}
</script>
npm run dev
$ claude mcp add vue-pswipe \
-- python -m otcore.mcp_server <graph>