v-html 富文本中图片使用element-ui image-viewer组件实现预览,并且阻止滚动条

效果

导入组件

复制代码
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
components:{ ElImageViewer },

模板使用组件

复制代码
<el-image-viewer
      v-if="isShowPics"
      :on-close="closeViewer"
      :url-list="srcList"
    />

定义两个变量

复制代码
isShowPics:false,
   srcList:[],
在v-html添加点击获取图片
复制代码
<div v-html="newsForm.content" @click="getImg($event)" style="padding-left: 50px;padding-right: 50px;"></div>

两个点击事件,包含预览时滚动异常

复制代码
closeViewer(){
      this.isShowPics = false
      this.srcList = []
      move()
      //取消滑动限制
      function move(){
        var mo=function(e){
          e.preventDefault();
      };
      document.body.style.overflow='';//出现滚动条
      document.removeEventListener("touchmove",mo,false);
    }
    },
    getImg($event){
      let currentSrc=$event.target.currentSrc
      if (currentSrc){
        this.srcList = [currentSrc]
        this.isShowPics = true
        stop()
      }
        //禁止滚动
      function stop(){
        var mo=function(e){
          e.preventDefault();
        };
        document.body.style.overflow='hidden';
        document.addEventListener("touchmove",mo,false);//禁止页面滑动
      }
    },
相关推荐
小码哥_常3 小时前
一套自己部署的 IM,客户端是同一份 Flutter
前端·后端
蜗牛攻城狮5 小时前
微前端四大方案选型对比与最佳实践:qiankun、micro-app、wujie、Module Federation
前端·微前端·qiankun·前端架构·micro-app·wujie
她说可以呀6 小时前
Vue插槽
前端·javascript·vue.js
qq_448011167 小时前
Vue + Jinja2两套模版与法冲突造成undefinedError
前端·javascript·vue.js
oicola7 小时前
【UI动效】科幻风长任务进度动效设计方案
ui
aixingpan7 小时前
aixingpan.cn API开发文档:前端查询夏令时和时区接口指南
前端·php
2601_958352907 小时前
23.5×19mm 换掉一整条音频链?|A-68 集成了什么:ADC / DAC / 24.576MHz 时钟 / AEC / 波束降噪,主控仅需 6 根线
前端·音视频·ai降噪·回声消除·语音模块
志尊宝8 小时前
AI原生前端开发(039):AI辅助的Nuxt 4全栈开发
前端·vue.js·ai-native
FRing039 小时前
JavaScript入门到精通三十二(深拷贝、浅拷贝、递归函数)
开发语言·前端·javascript
excel9 小时前
双 Token 与前端使用 Crypto 公私钥鉴权换 Token,哪种方案更好?
前端·后端