uniapp小程序监听richText中图片点击事件实现点击图片放大效果给出代码
以下是一个简单的实现点击richText中图片放大的示例代码:
<template>
<view>
<rich-text :nodes="richText" @click="handleRichTextClick"></rich-text>
<image v-if="showImage" :src="imageSrc" mode="aspectFit" @click="handleImageClick"></image>
</view>
</template>
<script>
export default {
data() {
return {
richText: '<div><p>这是一段富文本内容。</p><p><img src="https://example.com/image.jpg"></p></div>', // 富文本内容
showImage: false, // 是否显示放大的图片
imageSrc: '', // 放大的图片链接
};
},
methods: {
// 监听富文本点击事件
handleRichTextClick(e) {
if (e.target.tagName.toLowerCase() === 'img') { // 判断点击的元素是否为图片
this.showImage = true;
this.imageSrc = e.target.dataset.src;
}
},
// 监听放大的图片点击事件
handleImageClick() {
this.showImage = false;
this.imageSrc = '';
},
},
};
</script>
代码解析:
- 在模板中使用
rich-text组件显示富文本内容。 - 监听
rich-text组件的click事件,判断点击的元素是否为图片,如果是,则显示放大的图片,并将图片链接保存到imageSrc中。 - 在模板中使用
image组件显示放大的图片,当showImage为true时显示,当showImage为false时隐藏。 - 监听放大的图片的
click事件,隐藏放大的图片并将imageSrc清空。
需要注意的是,由于 rich-text 组件中的图片是通过 <img> 标签引入的,因此需要将图片链接保存在 data-src 属性中,以便在点击事件中获取。可以在后端生成富文本内容时,将图片链接保存在 data-src 属性中,例如:
<div><p>这是一段富文本内容。</p><p><img src="https://example.com/image.jpg" data-src="https://example.com/image.jpg"></p></div>
``
原文地址: https://www.cveoy.top/t/topic/g03d 著作权归作者所有。请勿转载和采集!