vux 显示 html,vux: v-html里的图片放大

具体情况就是从后台获取文章详情,用v-html的方法输出,怎么才可以实现点击图片令图片放大的效果。

关于图片放大的效果,可以调用vux的组件Previewer。

https://doc.vux.li/zh-CN/components/previewer.html

问题的难度是怎么给每个图片加上click事件呢?并且给每个事件附上index呢?

如果你用 Previewer 绑定了一个所有图片的链接的数组的话。

当初第一想法是利用正则表达式找出所有图片链接,这方面还是很容易的,但是继续下去呢,把所有图片链接存放进previewer的绑定数组,然后点击图片时还需要找到对应的数组中的index,嗯,还有给每张图片绑定点击事件。

太麻烦,太绕了。

没有方便一点的方法吗?

后来利用事件冒泡顺利解决了这个问题,既不用正则表达式费心思找出图片链接,也不用要给每张图片标序。

在输出v-html的父元素(包裹输出内容的元素)绑定click事件。

利用e.target.nodeName == 'IMG'判断是否点击了图片,然后可以利用 e.target.currentSrc 获取当前图片的链接,存放进previewer的绑定数组,让这个数组每次点击时都只存放当前图片的链接,所以触发previewer所需要的index自然而然就解决了,每次都是0。

下面就是用到的代码。

import { Previewer, TransferDom } from 'vux';

directives: {

TransferDom

},

components: {

Previewer

},

methods: {

previewImage (e) {

if (e.target.nodeName == 'IMG') {

let url = e.target.currentSrc;

let item = {

src: url

};

this.list.length = 0;

this.list.push(item);

this.$refs.previewer.show(0);

} else {

return;

}

}

},

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值