微信小程序实现朋友圈图片展现形式

news/2024/10/18 16:41:47/

朋友圈图片展现形式:
1、一张宽图:宽度100%,高度自适应
2、一张长图:高度全部展示,有最大高度,宽度自适应
3、多张图片:除去一张,两张和四张的时候是一排两张,其他都是一排三张,依次向后累加
4、视频:宽度是屏幕宽度的一半,高度自适应(视频的展现形式可能和朋友圈有些出入)

实现思路:
1、判断遍历对象是图片是视频,分别展示不同view
2、视频:为视频绑定加载完成事件bindloadedmetadata=“videometa”,在videometa方法中获取视频的宽高,并setData双向绑定在视频标签上
3、图片:
3.1、单张图片:为图片绑定加载完成事件bindload=“oneImageLoad”,在oneImageLoad中获取图片宽高,判断宽高大小来区别是长图还是宽图,并返回状态值isHeightMode,在图片标签中用isHeightMode 来决定图片的mode是widthFix还是heightFix,如果是长图HeightFix模式的时候,要给定图片最大高度
3.2、多张图片,一律都是mode=“aspectFill”,在css样式中编写顶宽定高,一排显示几张

下面只展示图片视频相关代码:
wxml:

  <!-- 图片和视频 --><view class="img_box"><view class="{{mediaList.length > 1 ? 'many_img' : ''}}"><!-- 遍历 --><!-- 在这里判断图片的数量是单站还是四张,分别给不同样式,来实现,一排是两张还是三张 --><viewwx:for="{{mediaList}}"wx:key="index"class="img_item {{mediaList.length == 1 ? 'one' : mediaList.length == 4 ? 'four' : 'many'}}"><!-- item.type == 2 是视频 --><!-- style 的 宽高是 视频标签 bindloadedmetadata="videometa" 方法里计算的宽高 --><viewclass="video_box"wx:if="{{item.type == 2}}"style="width: {{width}}rpx;height: {{height}}rpx;"><viewclass="video_marks"catchtap="previewImage"data-index="{{index}}"data-sources="{{mediaList}}"></view><videoclass="video"src="{{item.url}}"bindloadedmetadata="videometa"controls="{{false}}"></video></view><!-- 不是 item.type == 2 就是图片 else --><block wx:else><!-- 如果只有一张图片 bindload="oneImageLoad" 获取图片宽高,并计算宽高比,来判断图片的 mode 是 widthFix 还是 heightFix --><imagewx:if="{{mediaList.length == 1}}"class="img"bindtap="previewImage"bindload="oneImageLoad"src="{{item.url}}"data-sources="{{mediaList}}"data-index="{{index}}"mode="{{isHeightMode ? 'heightFix' : 'widthFix'}}"style="height: {{isHeightMode ? '500rpx' : ''}}"></image><!-- 多张图片 一律使用 aspectFill 并固定宽高 --><imagewx:elseclass="img"src="{{item.url}}"bindtap="previewImage"data-sources="{{mediaList}}"data-index="{{index}}"mode="aspectFill"></image></block></view></view></view>

js:

    // 预览图片previewImage(e) {let {sources, index} = e.currentTarget.datasetsources.filter(i => {i.type = i.type == 2 ? 'video' : 'image'i.poster = i.imgUrl})wx.previewMedia({sources,current: index})},// 视频加载完成,改变视频的宽高videometa(e) {var that = this;//获取系统信息wx.getSystemInfo({success (res) {//视频的高var height = e.detail.height;//视频的宽var width = e.detail.width;//算出视频的比例var proportion = height / width;//res.windowWidth为手机屏幕的宽。var windowWidth = res.windowWidth;//算出当前宽度下高度的数值height = proportion * windowWidth;that.setData({height,width:windowWidth});}})},// 图片加载后判断图片宽高比例oneImageLoad(e) {const { width , height } = e.detailheight >= width && this.setData({ isHeightMode: true })}

wxss:

.guidebook .img_box {margin-bottom: 12rpx;padding-left: 4rpx;
}
.guidebook .img_box .many_img {display: flex;justify-self: start;flex-wrap: wrap;
}
.guidebook .img_item.four {width: 198rpx;height: 198rpx;margin-right: 16rpx;margin-bottom: 16rpx;border-radius: 16rpx;overflow: hidden;
}
.guidebook .img_item.four:nth-child(2n) {margin-right: 30rpx;
}
.guidebook .img_item.many {width: 198rpx;height: 198rpx;margin-right: 16rpx;margin-bottom: 16rpx;border-radius: 16rpx;overflow: hidden;
}
.guidebook .img_item.many:nth-child(3n) {margin-right: 0;
}

http://www.ppmy.cn/news/702502.html

相关文章

微信朋友圈照片格式html,实测:微信朋友圈这样发图最清晰

经常刷朋友圈的你是否发现&#xff0c;有些人发的照片总是非常清晰&#xff0c;而自己发的照片一上传就变模糊&#xff0c;这到底是回事呢&#xff1f;当然&#xff0c;这肯定不是因为别人充了QQ币开通了会员&#xff0c;造成这种现象的根本原因在于&#xff0c;你上传的照片格…

微信朋友圈的测试用例

转载&#xff1a;https://blog.csdn.net/hchhan/article/details/83446695 1、点赞功能 1、网速对点赞的影响 2、点赞的人个数显示是否正确 3、共同好友能否看到点赞状态 4、能否显示点赞得人的头像和昵称&#xff0c;若能显示是否正确 5、一行显示几个点赞的头像 6、能否正常…

微信朋友圈装x代码_微信朋友圈写入代码 微信朋友圈代码大全

网页内容,转发到微信朋友圈,代码? 如果您将网页内容的网址粘贴到微信朋友圈,则会变成网址或代码: 1。把网址发送到你的手机。如果是您在手机浏览器上看到的网页,您可以将其复制下来; 2。进入朋友圈,按住右上角的相机图标,粘贴要共享的URL,然后单击发送; 3。回到朋友…

换你来,你会如何设计微信朋友圈?

1、需求理解 朋友圈大家都熟悉不得了&#xff0c;不再赘述。 2、设计 这里要阐述一个最关键的设计点&#xff0c;那就是微信朋友圈具有明显的非实时性。不知道你有没有留意到&#xff0c;假如有两个人 A和B&#xff0c;其中A发了朋友圈&#xff0c;A是可以在朋友圈里马上看到…

实现微信小程序分享朋友圈及好友

显示分享按钮 首先需要通过wx.showShareMenu实现在当前页面显示分享按钮。如不实现该代码&#xff0c;分享按钮为灰色不可用状态。showShareMenu微信小程序API文档链接 注意事项 显示“分享到朋友圈”按钮时必须同时显示“发送给朋友”按钮&#xff0c;显示“发送给朋友”按钮…

微信朋友圈html5广告,微信朋友圈原生广告页是什么

最近腾讯公布了微信的广告首次&#xff0c;从官方数据来看&#xff0c;新版广告效果似乎非常好&#xff0c;对此官方也对新的广告形式做了定义&#xff0c;并且称为朋友圈原生广告页&#xff0c;到底是什么东西呢&#xff0c;看看下面介绍吧。 一周前&#xff0c;腾讯公布了第二…

微信朋友圈会在服务器上保留多久,微信朋友圈有没有草稿?可以存多久?

微信已经成为大家生活中的必备品&#xff0c;刷朋友圈更是大家每天不可或缺的工作。如果有一天&#xff0c;不刷朋友圈总感觉会缺点什么。可见微信就和大家的血液一样&#xff0c;已经在大家的生活中生根了。虽然大家使用的多&#xff0c;接触的多&#xff0c;但是并不代表大家…

android 微信朋友圈时间不对,微信怎么重新编辑朋友圈 注意是有时间限制的

一直以来&#xff0c;很多用户都希望微信上线一个重新编辑朋友圈的功能&#xff0c;这样的话&#xff0c;用户在发布错误内容后&#xff0c;还可以进行重新编辑&#xff0c;果然&#xff0c;微信也不负众望&#xff0c;终于上线了重新编辑朋友圈的功能。 若用户想要重新编辑朋友…