feat(components): 在图片组件中添加长按显示菜单功能
This commit is contained in:
38
common/mixin/image-longpress.js
Normal file
38
common/mixin/image-longpress.js
Normal file
@@ -0,0 +1,38 @@
|
||||
/**
|
||||
* 微信小程序图片长按识别二维码 mixin
|
||||
* 自动为页面中的所有 image 组件添加 show-menu-by-longpress 属性
|
||||
*/
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
// 需要排除的图片类名(不需要长按识别的)
|
||||
excludeImageClass: ['no-longpress', 'swiper-image', 'banner-image']
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
// #ifdef MP-WEIXIN
|
||||
this.$nextTick(() => {
|
||||
this.addLongpressToImages()
|
||||
})
|
||||
// #endif
|
||||
},
|
||||
methods: {
|
||||
/**
|
||||
* 为页面中的所有 image 添加长按识别支持
|
||||
*/
|
||||
addLongpressToImages() {
|
||||
// 获取当前页面所有 image 组件
|
||||
const images = document.querySelectorAll && document.querySelectorAll('image')
|
||||
if (images) {
|
||||
images.forEach(img => {
|
||||
// 检查是否需要排除
|
||||
const className = img.className || ''
|
||||
const shouldExclude = this.excludeImageClass.some(cls => className.includes(cls))
|
||||
if (!shouldExclude) {
|
||||
img.setAttribute('show-menu-by-longpress', 'true')
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user