前言

产品说什么也要在大图预览下加图片描述,我说微信小程序不支持,wx.previewImage和wx.previewMedia都是我们自己改不了的。但是无奈非得要,那我说:加可以,但是做不到像wx.preview那样完美,右上角会有胶囊按钮,其它体验也会也些差距。为了加这个图片描述,我是抽业余时间搞了好多天才搞出来,真是。。。

示例动图

实现思路和方案

1. 将navigationBar隐藏掉,然后黑色背景一搞,左右切换使用swiper。
2. 因为考虑到swiper加载item太多会有渲染问题,我们在这里使用之前写的库swiper-limited-load。
3. 图片使用movable-view来实现双指缩放和移动功能,此外图片还应该有双击缩放,单击退出等功能.
4. 视频使用video组件,要考虑到只有滑动到当前item,才去渲染当前item的video组件,要不然出现左右两个video也跟着一起播放的情况就尴尬了。
5. 视频要实现宽度铺满,按宽高比例显示,需要知道视频的宽高比,这里可以用wx.getImageInfo来获取视频封面图片的信息(网络图片需要配置download域名),或者如果你们的接口会返回视频的宽高信息,根据屏幕宽度,直接设置高度也行。

总结

微信自带的wx.previewImage和wx.previewVideo其实已经挺好用了。就为了一个图片描述,我们自己造这么个轮子,得好几天时间,而且这个轮子还不如原来的好用。面对这种情况,这就看是要如何取舍了,是要开发效率,还是要用户体验。既然产品需要,那就硬刚吧。。。

项目地址:https://github.com/pengboboer/preview-media-desc

如果错误,欢迎指出。

如有新的需求也可以提出来,如果有时间的话,我会帮你们完善。

如果能帮到你们,记得给一个star,谢谢。

微信小程序可添加图片描述的wx.previewMedia相关推荐

  1. 微信 小程序 之PC端 不支持 wx.previewMedia 方法 故用自定义轮播图进行 模拟照片视频的播放

    微信小程序 自带的方法 wx.previewMedia 预览图片和视频. 图片 wx.previewImage 支持PC端可以进行播放, 视频没有找到对应的方法 在真机和手机端都可以进项展示,PC端不 ...

  2. 微信小程序长按图片发送给好友

    问题描述 微信小程序长按图片发送给好友 解决方法 直接在<image></image>标签添加:show-menu-by-longpress="true" ...

  3. 微信小程序怎么添加底部菜单按钮

    继续微信小程序方面的教程,今天讲怎么在空白的小程序页面添加几个类似菜单的按钮,实现点击某个按钮跳转到对应界面,而不是单单局限于一个页面. 需要什么: 微信小程序账户 电脑一台 电脑安装微信开发者工具软 ...

  4. php 微信创建客服,如何给微信小程序内添加客服按钮

    这次给大家带来如何给微信小程序内添加客服按钮,给微信小程序内添加客服按钮的注意事项有哪些,下面就是实战案例,一起来看一下. 1. 普通客服按钮添加客服-联系我们 2. 悬浮客服按钮添加,图片自定义 大 ...

  5. 微信在线客服 php,微信小程序中添加联系在线客服功能

    这次给大家带来微信小程序中添加联系在线客服功能,微信小程序中添加联系在线客服功能的注意事项有哪些,下面就是实战案例,一起来看一下. 1. 普通客服按钮添加客服-联系我们 2. 悬浮客服按钮添加,图片自 ...

  6. 微信小程序如何添加新的icon图标

    微信小程序如何添加新的icon图标 第一步 先去阿里云下载图标http://www.iconfont.cn/ 根据需要把图片的代码下载下来,下载完成之后是一个 压缩包,解压压缩包里面有一个css的文件 ...

  7. 微信小程序开发实现图片滚动效果

    微信小程序开发实现图片滚动效果 效果:左右滑动可以切换展示图片 代码: <!--pages/test/test.wxml--> <!-- 组件 --> <swiper&g ...

  8. 详解 - 解决微信小程序分享功能图片比例问题 - 全局分享

    前言: 我在我的博客小程序使用微信小程序分享功能 图片不符合5:4问题 ,对其原理 扫描下面二维码,可以体验哦 准备 在需要自定义分享的页面 设置canvas 组件 目录 准备 详解思路 定义总函数 ...

  9. 微信小程序内拖动图片实现移动、放大、旋转

    最近接到一个任务,在微信小程序内拖动图片组件实现移动.放大.旋转,并记录这些图片的移动位置,放大比例,旋转角度,在一个画布上生成一张图片,最后保存到手机相册. 我的具体实现思路是这样的:(文章底部留有 ...

最新文章

  1. tensorflow 卷积、反卷积形式的去噪自编码器
  2. 蓝桥杯:算法训练之最大最小公倍数
  3. 【转载】ABAP中数据和对象的动态创建和调用
  4. [云炬创业基础笔记] 第四章测试10
  5. P4249 [WC2007]剪刀石头布(网络流/费用流)
  6. 在Spring MVC中处理域对象
  7. 【跨域问题】Vue简单封装axios—解决post请求后端接收不到参数问题
  8. 超级菜菜鸟全程架站攻略(Mysql+Apche+PHP+Phpmyadmin+Zend,含本机安装)
  9. 【java】java 如何证明linux缓存行确实存在
  10. java获取大乐透开奖_java生成大乐透中奖号码
  11. 电子书下载:Beginning ASP.NET 2.0 and Databases
  12. Windows10远程连接服务器时出现“这可能是由于CredSSP加密数据库修正”的错误提示的解决办法
  13. flask和ajax实现前后端交互
  14. 批量抓取QQ群成员的QQ号、昵称、群名片
  15. jquery dialog 打开的时候自动聚焦解决方法
  16. socket编程—UDP套接字
  17. 该怎么标注建筑图纸后进行保存?
  18. 【Luogu】P7995 [USACO21DEC] Walking Home B
  19. H3C路由器多出口NQA+TRACK实现冗余
  20. 聊一聊以前公司的测试流程

热门文章

  1. scatter函数参数详解
  2. 地理信息系统名词解释大全(九)
  3. -- 45、查询选修了全部课程的学生信息
  4. 阿里图标font class的使用方法
  5. EtherCAT运动控制卡开发教程之Qt(中):小线段连续轨迹加工、暂停与继续
  6. 我的第一个网站“爱汉服”
  7. 关于Scratch“等待0秒”在射击游戏中的经典应用
  8. 第一财经日报CBN 电子版
  9. 深度长文 | 解析Apple Vision Pro 的3D功能与LiDAR工作场景,灵明光子ADS 6401 虚实交互的驱动引擎
  10. Redis 缓存和 MySQL 如何实现数据一致性