前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vue动态绑定class | 类似微信朋友圈功能的实现

Vue动态绑定class | 类似微信朋友圈功能的实现

作者头像
倾盖
发布2022-08-16 14:16:49
6940
发布2022-08-16 14:16:49
举报
文章被收录于专栏:RivenCabin

涉及知识点:

  • vue动态绑定class
  • 动态绑定class失效时使用行内样式
  • uvue的image图片不显示问题

源码:

代码语言:javascript
复制
<view class="gui-comments-imgs gui-flex gui-rows gui-wrap"
												v-if="item.enclosures">
												<!-- 根据动态图片集合长度动态改变图片显示大小 -->
												<!-- 判断图片数量绑定不一样的图片样式class -->
												<view
													:class="[{'gui-comments-image-gt1':(item.enclosures.length>1)},{'gui-comments-image-lt1':(item.enclosures.length==1)}]"
													v-for="(img, indexImg) in item.enclosures" :key="indexImg"
													@click.stop="showImgs(index, indexImg)">
													<!-- 图片数量大于1,给定image固定高度和margin,这里的行内样式其实我在class里面也写得有,但是不知道为啥绑定的没用,必须写行内 -->
													<image v-if="item.enclosures.length>1"
														style="height:180rpx; margin:5rpx;"
														class="gui-comments-image-pic-gt1"
														:src="img.url" mode="aspectFill"></image>
													<!-- 图片数量等于1,不需要固定高度和margin -->
													<image v-if="item.enclosures.length==1"
														class="gui-comments-image-pic-lt1"
														:src="img.url" mode="aspectFill"></image>
													<!-- 必须加一个view,给定宽度,不然图片会不显示,不知道这是什么bug -->
													<view style="width:190rpx;"></view>
												</view>

实现朋友圈功能时接触到的其他知识点:

image的mode属性

代码语言:javascript
复制
mode属性
    scaleToFill 缩放模式(默认属性),不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素

    aspectFit 缩放模式,保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。

    aspectFill 缩放模式,保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。

    当时使用image实现图像自适应的时候,设置mode="aspectFill"

CSS object-fit 属性

代码语言:javascript
复制
object-fit 属性可接受如下值:

fill - 默认值。调整替换后的内容大小,以填充元素的内容框。如有必要,将拉伸或挤压物体以适应该对象。
contain - 缩放替换后的内容以保持其纵横比,同时将其放入元素的内容框。
cover - 调整替class="gui-comments-image-pic-gt1"换内容的大小,以在填充元素的整个内容框时保持其长宽比。该对象将被裁剪以适应。
none - 不对替换的内容调整大小。
scale-down - 调整内容大小就像没有指定内容或包含内容一样(将导致较小的具体对象尺寸)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档