微信小程序图片全屏预览组件,并解决svg真机显示黑屏问题

自己码了个微信小程序图片全屏预览组件,并解决了svg真机显示黑屏问题(即png等格式可以正常显示,但就svg无法显示)。

/**
 * 微信小程序图片预览组件
 * 1.支持预览svg、png、jpeg、jpg、bmp等小程序支持的格式,
 * 支持保存图片到本地,支持双指缩放,单指拖动,
 * 支持本地图片、网络图片、小程序云存储图片。
 * 2.不会存在小程序官方提供的全屏预览接口(https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.previewImage.html)
 * 出现的svg预览咱部分真机上不显示的问题。
 * 3.作者:crysu
 * 4.作者博客:https://blog.crysu.com
 * 5.作者邮箱:zbshr@foxmail.com
 */

    属性说明

属性名                     默认值                类型        说明                                                    必填

imgUrl                    []                    Array      图片地址的数组                                            是

imgPos                    0                     Number     组件加载时默认加载哪张图片,默认为0,即imgUrl数组的第一个      否

showImgFlag               true                  Boolean    显示/隐藏 组件的控制器,true为显示,false为隐藏              否

scaleMin                  0.2                   String     图片缩放最小倍数                                          否

scaleMax                  20                    String     图片缩放最大倍数                                          否

scaleDefault              2                     String     图片缩放默认倍数                                          否

contentBackgroundColor    rgba(0, 0, 0, 0.6)    String     组件页面背景色                                            否 

imgBackgroundColor        rgba(0, 0, 0, 0.0)    String     图片背景色                                               否

引用示例:

首先在小程序根目录创建名为Component的文件夹,然后把源码(文章末尾有链接)文件中的imgPreview文件夹放到Component中

然后在需要引入组件的页面写入以下代码

json:

"usingComponents": {
      "showImg": "/Component/imgPreview/imgPreview"
    }

wxml:

这里的话,imgUrl这个属性是必须的,其他的可以不要

<showImg imgUrl="{{imgUrl}}" imgPos="{{imgPos}}"></showImg>

wxss:

js:

data: {
        imgUrl: ["https://markdownserver.crysu.com/test/2021419101938_8567.svg",
        "https://markdownserver.crysu.com/test/333.png",
        "./img/md-chevron_left.svg",
        "cloud://yiyi-62qxe.7969-yiyi-62qxe-1257035987/1564989457044.jpg"
        ],
        imgPos: 0,
        showImgFlag: false,
        scaleMin: "0.2",
        scaleMax: "20",
        scaleDefault: "2",
        contentBackgroundColor: "rgba(0, 0, 0, 0.6)",
        imgBackgroundColor: "rgba(0, 0, 0, 0)"
      },

效果:


组件源码:

https://crysu.lanzous.com/b09rxx77c
密码:a4m7

 

 

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值