富文本内容图片点击实现多图预览

 实现思路:
获取到富文本中所有的img标签,方面给图片添加类名方便后面取dom;

获取所有的img类

给每个img绑定点击事件

利用数组的splice方法,将当前点击的图片放置数组的第一项

调用vant预览方法

import { showImagePreview } from 'vant';

<p v-html="content"></p>

// 点击图片预览
let content = ref('') //处理后的富文本
let contentPic = ref('')
const getImgList = () => {
    let srcList = [];
    content.value = dataObj.value.content.replace(/<img [^>]*src=['"]([^'"]+)[^>]*>/g, (match, capture) => {
        console.log(capture, 'capture');
        srcList.push(capture); // capture图片地址  match img标签整体
        return `<img src=${capture} class="content-img">`;//给图片添加class方便后面取dom
    });
    nextTick(() => {
        const imgHtml = document.getElementsByClassName('content-img');
        for (let i = 0; i < imgHtml.length; i += 1) {
            imgHtml[i].onclick = () => {
                //解决点击预览时不是当前图片问题
                const tempImgList = [...srcList];// 所有图片地址
                if (i === 0) {
                    contentPic.value = tempImgList;
                } else {
                    // 调整图片顺序,把当前图片放在第一位
                    const start = tempImgList.splice(i);
                    const remain = tempImgList.splice(0, i);
                    contentPic.value = start.concat(remain);
                }
                console.log(contentPic.value, 'contentPic.value');
                showImagePreview([contentPic.value[0]]);
            }
        }
    })
}

相关推荐

  1. 文本内容图片实现

    2023-12-15 19:40:02       62 阅读
  2. uniapp图片功能?

    2023-12-15 19:40:02       62 阅读
  3. uni-app图片

    2023-12-15 19:40:02       60 阅读
  4. uniapp实现图片放大,长按下载图片

    2023-12-15 19:40:02       39 阅读
  5. 在Vue中使用v-viewer插件实现图片

    2023-12-15 19:40:02       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-15 19:40:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-15 19:40:02       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-15 19:40:02       87 阅读
  4. Python语言-面向对象

    2023-12-15 19:40:02       96 阅读

热门阅读

  1. Linux anacron命令 检测长期不执行的定时任务

    2023-12-15 19:40:02       45 阅读
  2. 30天精通Nodejs--第十三天:MySQL2

    2023-12-15 19:40:02       58 阅读
  3. 计算机网络中的通信子网主要有哪些功能?

    2023-12-15 19:40:02       64 阅读
  4. 挑战52天学小猪佩奇笔记--day22

    2023-12-15 19:40:02       56 阅读
  5. C++的函数包装模板std::function

    2023-12-15 19:40:02       63 阅读
  6. 【Spring】SpringAop给所有Service增加日志

    2023-12-15 19:40:02       64 阅读