美文网首页
小程序自定义图片组件(设置宽、高、默认图片)

小程序自定义图片组件(设置宽、高、默认图片)

作者: hao_developer | 来源:发表于2023-05-12 10:12 被阅读0次

效果图

image.png

自定义组件wxml

<!--components/load-img/index.wxml-->
<view class="img-content" style="width: {{imgWidth}};height: {{imgHeight}};">
  <image bindload="loadHander" binderror="loadError" src="{{imgUrl}}" lazy-load="true" mode="aspectFill" class="img-real"></image>
  <image wx:if="{{isShow == false}}" src="{{imgDefault}}" class="img-def" mode="aspectFit"></image>
</view>

自定义wxss

/* components/load-img/index.wxss */

.img-content {
  position: relative;
  border-radius: 20rpx;
  background: pink;
}

.img-real {
  width: 100%;
  height: 100%;
  border-radius: 20rpx;
}

.img-def {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  border-radius: 20rpx;
  background: #c7c6c5;
}

自定义组件js

// components/load-img/index.js
Component({
  properties: {
    imgWidth: {//设置图片宽
      value: '200rpx',
      type: String,
    },
    imgHeight: {//设置图片高
      value: '200rpx',
      type: String,
    },
    imgUrl: {//设置加载图片
      value: 'https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F7l4gIEpqHJo0Qajr4RqIIOE7frTtnL8UmAGKiMY7hMZbP1618564861181.jpeg&thumbnail=660x2147483647&quality=80&type=jpg',
      type: String,
    },
    imgDefault: {//设置默认图片图片
      value: '../../image/default.png',
      type: String,
    }
  },
  data: {
    isShow: false,//控制是否显示默认图片
  },
  methods: {
    loadHander(e) {//图片加载成功监听事件
      this.setData({
        isShow: true,
      })
    },
    loadError(e) {//图片加载失败监听事件
      this.setData({
        isShow: false,
      })
    }
  }
})

自定义组件的使用json

{
  "usingComponents": {
    "load-img": "../../components/load-img/index"
  }
}

自定义组件的使用wxml

<load-img imgUrl="{{imgUrl}}" imgWidth="{{imgWidth}}" imgHeight="{{imgHeight}}"></load-img>
<load-img imgUrl="{{imgUrl1}}" imgWidth="{{imgWidth}}" imgHeight="{{imgHeight}}"></load-img>

自定义组件的使用js

Page({
  data: {
    imgWidth: '23vw', //calc((100% - 220rpx) / 3)
    imgHeight: '23vw',
    imgUrl: 'https://img2.baidu.com/it/u=3138084486,1386422053&fm=253&fmt=auto?w=500&h=666',
  },
})

相关文章

  • 小程序图片自适应缩放设置

    图片缩放 小程序的image组件提供了缩放的模式选择,默认的scaletofill就是设置固定的宽高模式比较少使用...

  • 微信小程序图片裁剪组件

    通用微信小程序图片裁剪组件,简单易用,帮助快速开发图片裁剪功能,支持自定义约束宽高,适用于头像或其他需要特定长宽比...

  • 小程序图片裁剪模式的使用。

    小程序图片模式的问题。默认为 scaleToFill 不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 im...

  • 微信小程序中的视频播放问题

    video 小程序中的video组件是原生组件, 默认宽度300px、高度225px,可通过wxss设置宽高。其中...

  • 处理小程序image图片自适应问题

    问题:因为小程序的image组件是有默认的宽高的,320px*240px;而在某些时候,我们不同的图片的高度是不一...

  • 微信小程序 图片

    如果是一个单个的图片放在那里,即使给图片设置了宽高等于图片的宽高,因为图片有一个默认的display:inline...

  • 微信小程序图片加载

    微信小程序里面显示图片会用到 image 组件,该组件默认宽度300px、高度225px,使用时需要自己设置宽度 ...

  • 微信小程序 wxss样式总结

    图片宽高自适应 mode 属性:默认值:scaleToFill —- 不保持纵横比例缩放图片,使图片的宽高完全拉伸...

  • 微信小程序image优化

    结论:微信小程序image需要设置默认宽高使用了mode属性如果不设置默认宽高,会在页面加载的瞬间出现闪屏问题 如...

  • div盒子宽高固定,图片正常显示

    div盒子大小固定,图片要求正常铺满显示 方法一:通过盒子设置宽、高,然后图片直接设置100%。这样小的图片,比例...

网友评论

      本文标题:小程序自定义图片组件(设置宽、高、默认图片)

      本文链接:https://www.haomeiwen.com/subject/ykgssdtx.html