Vue uniapp realizes the effect of image width 100% and height adaptation

In Uniapp, we can use the image component to load pictures, and to achieve the effect of picture width 100% and height self-adaptation, it can be achieved through the following steps: First, set the mode attribute on the image component to widthFix, which means according to the
picture The width is scaled proportionally, and the image width is guaranteed to be 100%.
Next, set the style attribute on the image component to set a highly adaptive image. This can be achieved using the height: auto property of CSS.

<template>
  <view class="container">
    <image class="img" mode="widthFix" :src="imageUrl" :style="{ height: imgHeight + 'px' }" @load="onImgLoad" />
  </view>
</template>

<script>
export default {
    
    
  data() {
    
    
    return {
    
    
      imageUrl: 'https://picsum.photos/400/300',
      imgHeight: 0,
    };
  },
  methods: {
    
    
    onImgLoad(e) {
    
    
      // 当图片加载完成后,获取图片的原始宽度和高度,并根据宽度计算出高度
      const {
    
     width, height } = e.mp.detail;
      this.imgHeight = (height / width) * 100; // 高度 = 原始高度 / 原始宽度 * 100
    },
  },
};
</script>

<style>
.container {
    
    
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.img {
    
    
  width: 100%;
}
</style>

Guess you like

Origin blog.csdn.net/qq_52099965/article/details/129778366