vue对富文本图片放大和宽度控制
vue对富文本图片进行宽度的控制和点击放大功能
·
1. vue控制富文本图片宽度
通过 v-html 创建的 DOM 内容不受作用域(scoped)内的样式影响,所以正常在scoped里面设置宽高是不起作用的,添加 !important 也是没用的。
解决方法:
在css内再写一个不加 scoped 的 style,单独设置富文本的img样式
<style lang="scss">
img {
width: 100%;
}
</style>
2.vue实现富文本图片点击放大功能
<!-- 新增点击富文本图片放大功能 -->
<p class="content-detail" v-html="articleContent" @click="showImg($event)"></p>
<!-- 富文本图片放大区域 -->
<div
class="imgDolg"
v-show="imgPreview.show"
@click.stop="imgPreview.show = false"
>
<i
class="el-icon-close"
id="imgDolgClose"
@click.stop="imgPreview.show = false"
></i>
<img @click.stop="imgPreview.show = true" :src="imgPreview.img" />
</div>
<!-- 放大demo区 -->
data中:
// 图片放大
imgPreview:{
img:"",
show:false
}
methods中:
// 图片点击放大
showImg(e) {
// console.log(e.target)
if (e.target.tagName == 'IMG') {
this.imgPreview.img = e.target.src
this.imgPreview.show = true
}
},
//富文本图片放大
.imgDolg {
width: 100vw;
height: 100vh;
position: fixed;
z-index: 9999;
background-color: rgba(140, 134, 134, 0.6);
top: 0;
left: 0;
display: flex;
align-items: center;
justify-content: center;
#imgDolgClose {
position: fixed;
top: 35px;
cursor: pointer;
right: 7%;
font-size: 50px;
color: white;
}
img{
width: 80%;
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)