Echarts字体样式自适应

  • Post author:
  • Post category:其他




Echarts的标题字体、样式自适应



在项目中引入Echarts



通过script标签引入

   下载Echarts.js,通过官方的github或者使用CDN加速器的方式引入到自己的项目中。
 <script src="./echarts.min.js"></script> //源码引入
 <script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.3.3/echarts.common.js"></script> //bootcdn引入



通过npm安装enharts

npm install echarts --save



在项目中使用Echarts



创建容器

  <div class="container" id="container"></div>



Echarts初始化

 // 获取dom
 let myEcart = echarts.init(document.getElementById("container"));



定义rem自适应方法

  // 使用rem的思想实现图表字体等其他样式的自适应
      function fontSize(px) {  //传入字体大小
        let clientWidth = window.innerWidth || document.body.clientWidth; //屏幕尺寸
        if (!clientWidth) {
          return 0;
        }
        let fontSize = clientWidth / 1920; //设计稿尺寸
        return px * fontSize;  //转换为 rem的布局返回出去
      }



定义option

// 定义option
      let option = {
        title: {
          text: "ECharts 入门示例",
          textStyle: {
            fontSize: fontSize(20), //使用rem自适应
          },
          top: "10%",
          left: "50%",
        },
        tooltip: {},
        xAxis: {
          data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
          axisLabel: {
            fontSize: fontSize(16),//使用rem自适应
            color:'#000'
          },
        },
        yAxis: {},
        series: [
          {
            name: "销量",
            type: "bar",
            data: [5, 20, 36, 10, 10, 20],
          },
        ],
      };



绘制图表

// 绘制图表
      myEcart.setOption(option);
      // 图表尺寸大小自适应
      window.addEventListener("resize", () => {
        myEcart.resize();
      });



基础示例完整代码

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Echarts的基本示例</title>
    <script src="./echarts.min.js"></script> //引入你的echarts文件
    <style>
      * {
        padding: 0;
        margin: 0;
      }
      html,
      body,
      .container {
        width: 100%;
        height: 100%;
        overflow: hidden;
      }
    </style>
  </head>
  <body>
    <div class="container" id="container"></div>
    <script>
      // 获取dom
      let myEcart = echarts.init(document.getElementById("container"));
      // 使用rem的思想实现图表字体等其他样式的自适应
      function fontSize(px) {
        let clientWidth = window.innerWidth || document.body.clientWidth; //屏幕尺寸
        if (!clientWidth) {
          return 0;
        }
        let fontSize = clientWidth / 1920; //设计稿尺寸
        return px * fontSize;
      }
      // 定义option
      let option = {
        title: {
          text: "ECharts 入门示例",
          textStyle: {
            fontSize: fontSize(20),  //使用rem自适应
          },
          top: "10%",
          left: "50%",
        },
        tooltip: {},
        xAxis: {
          data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
          axisLabel: {
            fontSize: fontSize(16),  //使用rem自适应
            color:'#000'
          },
        },
        yAxis: {},
        series: [
          {
            name: "销量",
            type: "bar",
            data: [5, 20, 36, 10, 10, 20],
          },
        ],
      };
      // 绘制图表
      myEcart.setOption(option);
      // 图表尺寸大小自适应
      window.addEventListener("resize", () => {
        myEcart.resize();
      });
    </script>
  </body>
</html>



示例效果



完成效果 1920px

在这里插入图片描述



完成效果 1000px

在这里插入图片描述



总结

定义fontSize方法,通过传入一个字体大小数值,单位为px,通过rem的思想将px转换为rem的单位,返回给调用的对象,实现字体、标题、样式的大小自适应。

一直在不断前进,如有问题,请各位看官指出,相互交流学习。



版权声明:本文为pizixian_原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。