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);//禁止页面滑动
      }
    },
相关推荐
hui函数8 分钟前
掌握JavaScript函数封装与作用域
前端·javascript
行板Andante20 分钟前
前端设计中如何在鼠标悬浮时同步修改块内样式
前端
Carlos_sam1 小时前
Opnelayers:ol-wind之Field 类属性和方法详解
前端·javascript
小毛驴8501 小时前
创建 Vue 项目的 4 种主流方式
前端·javascript·vue.js
CodeCraft Studio1 小时前
借助Aspose.HTML控件,在 Python 中将 HTML 转换为 Markdown
开发语言·python·html·markdown·aspose·html转markdown·asposel.html
誰能久伴不乏2 小时前
Linux如何执行系统调用及高效执行系统调用:深入浅出的解析
java·服务器·前端
涔溪3 小时前
响应式前端设计:CSS 自适应布局与字体大小的最佳实践
前端·css
今禾3 小时前
前端开发中的Mock技术:深入理解vite-plugin-mock
前端·react.js·vite
你这个年龄怎么睡得着的3 小时前
Babel AST 魔法:Vite 插件如何让你的 try...catch 不再“裸奔”?
前端·javascript·vite
我想说一句3 小时前
掘金移动端React开发实践:从布局到样式优化的完整指南
前端·react.js·前端框架