在 ECharts 中实现移动端自适应,主要涉及到以下几个方面的工作:

1. 容器大小自适应: 当用户在移动设备上访问时,需要确保图表容器的大小适应不同的屏幕尺寸。

2. 触摸交互优化: 移动端上用户主要通过触摸进行交互,因此需要对触摸事件进行优化。

3. 字体大小调整: 移动端屏幕相对较小,需要适当调整图表中的字体大小,以确保在小屏幕上能够清晰显示。

下面是一个简单的示例,演示了如何在移动端使用 ECharts,并进行了一些基本的自适应配置:
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>ECharts 移动端自适应示例</title>
  <!-- 引入 ECharts 库 -->
  <script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
</head>
<body>

<!-- 在这里创建一个容器用于放置图表 -->
<div id="myChart" style="width: 100%; height: 300px;"></div>

<script>
// 获取屏幕宽度
var screenWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;

// 设置容器宽度和字体大小的适应性配置
var containerWidth = screenWidth > 600 ? '600px' : '100%';
var fontSize = screenWidth > 600 ? 16 : 12;

// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('myChart'));

// 设置容器宽度和字体大小
myChart.setOption({
  title: {
    text: '移动端自适应示例',
    textStyle: {
      fontSize: fontSize
    }
  },
  grid: {
    left: '5%',
    right: '5%',
    bottom: '15%',
    containLabel: true
  },
  xAxis: {
    data: ['A', 'B', 'C', 'D', 'E'],
    axisLabel: {
      fontSize: fontSize
    }
  },
  yAxis: {
    axisLabel: {
      fontSize: fontSize
    }
  },
  series: [{
    name: '销量',
    type: 'bar',
    data: [5, 20, 36, 10, 10]
  }]
});

// 设置容器宽度
myChart.resize({
  width: containerWidth
});

// 监听窗口大小变化,实时调整容器大小
window.addEventListener('resize', function () {
  screenWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
  containerWidth = screenWidth > 600 ? '600px' : '100%';
  fontSize = screenWidth > 600 ? 16 : 12;

  myChart.resize({
    width: containerWidth
  });

  // 根据屏幕宽度动态调整字体大小
  myChart.setOption({
    title: {
      textStyle: {
        fontSize: fontSize
      }
    },
    xAxis: {
      axisLabel: {
        fontSize: fontSize
      }
    },
    yAxis: {
      axisLabel: {
        fontSize: fontSize
      }
    }
  });
});
</script>

</body>
</html>

在这个示例中,通过使用 window.innerWidth 获取屏幕宽度,并根据屏幕宽度动态调整容器宽度和字体大小。同时,通过监听窗口大小变化事件,实时调整图表容器的大小,以实现在移动端的自适应。这只是一个简单的示例,实际中可能需要根据具体情况进行更复杂的适配工作。


转载请注明出处:http://www.zyzy.cn/article/detail/5064/ECharts