您的位置:

uniapp图片自适应

一、uniapp自适应布局

uniapp框架自带的flex布局可以很方便地实现图片自适应,即使在不同大小的屏幕上也能保持良好的比例。

首先,在布局容器的样式中添加display:flex;justify-content:center;align-items:center;可以使图片在容器中水平和垂直居中。

<template>
  <view class="container">
    <image src="../assets/image.png" class="img-item" />
  </view>
</template>

<style>
  .container {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100vw;
    height: 100vh;
  }
  .img-item {
    width: 50%;
    height: auto;
  }
</style>

上面的代码中,将容器的宽度设置为100vw和高度为100vh,确保容器始终为整个屏幕的大小。同时,图片的宽度为50%,高度自适应,以确保在不同大小的屏幕上图片的比例始终保持不变。

二、uniapp自适应配置

1. viewport配置

uniapp框架提供了viewport配置,可以让我们在不同屏幕分辨率上获得一致的显示效果。在HTML文件的head部分添加下面的代码即可:

<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"> 

其中,width=device-width表示将Viewport的宽度设为设备的等宽视口(也就是视口宽度等于设备宽度),initial-scale=1、minimum-scale=1、maximum-scale=1、user-scalable=no表示禁止用户缩放网页。

2. rem适配配置

rem是相对于根元素(即html元素)字体大小的单位,使用rem可以解决手机屏幕分辨率不同的问题,保证页面的自适应,uniapp框架提供rem适配,只需要在项目初始化的时候设置你的设计稿宽度即可,比如我的设计稿是375px,那么就需要设置下面的代码:

uni.setMatchedSize({
    width: 375,
    height: 667
}) 

注意,这里的宽度和高度需要和设计稿保持一致,这样,uniapp框架就可以根据设计稿的尺寸自适应。

3. 图片懒加载

图片懒加载可以减少页面加载时间,提高用户的体验,uniapp框架提供了lazy-load属性,只需要在image标签中添加lazy-load即可实现图片的懒加载,如下所示:

<image src="../assets/image.png" class="img-item" lazy-load />

4. 使用阿里巴巴矢量图标库

在移动端应用中,使用矢量图标库可以提高应用的性能并减小应用体积,uniapp框架提供了方便的安装和使用方法。首先需要安装阿里巴巴矢量图标库,安装方法可以通过命令行运行下面的代码:

npm install uni-icons -S

然后在需要使用图标的页面中引入css文件,如下所示:

import 'uni-icons/css/uni-icons.css';

之后即可在页面中使用矢量图标库中的图标了,如下所示:

<uni-icons type="icon-back">

5. 使用图片CDN加速

如果我们的应用中使用了大量的图片资源,为了让用户加载速度更快,可以考虑使用CDN加速技术,uniapp框架提供了易于使用的CDN加速方法。

首先需要在项目根目录下的vue.config.js文件中添加对应的url,如下所示:

module.exports = {
  chainWebpack: (config) => {
    config.plugin('html').tap((args) => {
      args[0].cdn = {
        css: [
        ],
        js: [
          'https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.min.js',
          'https://cdn.bootcss.com/axios/0.18.0/axios.min.js'
        ]
      };
      return args;
    });
  }
};

在以上的例子中,我们可以将vue js框架和axios js库的url地址设置为CDN引用,这样就可以加速我们的应用加载速度。

三、总结

本文介绍了uniapp框架中图片自适应的方法,包括使用flex布局、viewport配置、rem适配等相关技术,同时还介绍了使用阿里巴巴矢量图标库、图片懒加载、使用CDN加速等技术。通过以上的方法,可以让我们的应用在不同屏幕上都能够保持良好的显示效果,并提升应用的性能和用户的体验。