当前位置:首页 » 《关注互联网》 » 正文

【echarts】拖拽滑块dataZoom-slider自定义样式,简单适配移动端

3 人参与  2024年09月16日 10:01  分类 : 《关注互联网》  评论

点击全文阅读


电脑端

在这里插入图片描述

移动端

在这里插入图片描述

代码片段

    dataZoom: [      {        type: 'inside',        start: 0,        end: 100      },      {        type: 'slider',        backgroundColor: '#F2F5F9',        fillerColor: '#BFCCE3',        height: 13, // 设置slider的高度为15        start: 0,        end: 100,        right: 60,        left: 60,        bottom: 15,        handleIcon:          'path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5M36.9,35.8h-1.3z M27.8,35.8 h-1.3H27L27.8,35.8L27.8,35.8z', // 使用类似 axisPointer 的图标        handleSize: '200%', // 放大按钮        borderColor: 'none',        handleStyle: {          color: '#BFCCE3',          shadowBlur: 6,          shadowColor: 'rgba(123, 154, 204, 0.5)',          shadowOffsetX: 0, // 阴影偏移x轴多少          shadowOffsetY: 0 // 阴影偏移y轴多少        },        // 显示的label的格式化器        // 20050101 变为 2005\n0101        labelFormatter: function (index, value) {          const year = value.slice(0, 4);          const date = value.slice(4);          return year + '\n' + date;        },        textStyle: {          fontStyle: 'italic' // 设置字体倾斜        },        showDataShadow: false // 隐藏数据阴影      }    ]

思路:

showDataShadow: false // 隐藏数据阴影
是把数据预览去掉移动端不太方便,所以把按钮进行了修改方便用户拖拽。
        handleIcon:          'path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5M36.9,35.8h-1.3z M27.8,35.8 h-1.3H27L27.8,35.8L27.8,35.8z', // 使用类似 axisPointer 的图标        handleSize: '200%', // 放大按钮        borderColor: 'none',        handleStyle: {          color: '#BFCCE3',          shadowBlur: 6,          shadowColor: 'rgba(123, 154, 204, 0.5)',          shadowOffsetX: 0, // 阴影偏移x轴多少          shadowOffsetY: 0 // 阴影偏移y轴多少        },
因为 日期格式是 YYYYMMDD, 手机上显示太长了,这里做了换行处理。
        // 显示的label的格式化器        // 20050101 变为 2005\n0101        labelFormatter: function (index, value) {          const year = value.slice(0, 4);          const date = value.slice(4);          return year + '\n' + date;        },
这里有个坑:labelFormatter

labelFormatter官网说,value在type 为 'category’的时候,是索引值。
但我实际看到的效果不是。
比如我有7000个数据点,每次拖拽的时候,索引index只有200多个,导致我获取不到数据。

因为只想拖拽的时候,格式化显示的label,第二个参数就是当时显示的label,但是文档里没有标出来。
https://echarts.apache.org/zh/option.html#dataZoom-slider.labelFormatter
在这里插入图片描述

在这里插入图片描述


点击全文阅读


本文链接:http://zhangshiyu.com/post/160610.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1