前端echarts大小屏自适应与自定义Tab切换hover效果

剑阁峥嵘而崔嵬,一夫当关,万夫莫开 🏆 @蜀道难

🔎 了解博主

  1. 📢 个人简介: 哈喽!小伙伴们,我是水香木鱼,水瓶座一枚 😜 来自于黑龙江 庆安
  2. 🏡 本站首页: 水香木鱼
  3. 🚀 博客主页: 陈春波 👉 开源博客【纯前端开发-Vue3+TS+Ant Design of Vue】,来 Star⭐Gitee吧 ! 拥有属于我们自己的 Blog。
  4. 🎨 系列专栏:大屏可视化ECharts
  5. 📖 人生格言: 生活是一面镜子。 你对它笑, 它就对你笑; 你对它哭, 它也对你哭。
  6. 🌏 小目标: 成为前端布道师

📑 文章内容

详细内容请看代码内 👇 注解,很详细。木鱼已经为小伙伴们 标注好了!

🗺 Echarts 自适应

1、关键代码【方案一】

监听相应的 Dom 元素,当大小发生变化时,调用 resize()函数,本次演示 使用方案一

//放置 获取DOM 节点时 去监听
const chartNode = new ResizeObserver(() => {
  myChart.resize();
});
chartNode.observe(chartDom);

2、方案二

通过监听window浏览器窗口实现

//1、单独一个图表出现时,可用此方案
window.onresize = () => {
  myChart.resize();
};
/*--------------------*/
//2、冒泡阶段执行
window.addEventListener(
  "resize",
  () => {
    myChart.resize();
  },
  false
); // false代表事件句柄在冒泡阶段执行

3、源码

<template>
  <div>
    <div id="echarts" ref="echarts"></div>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        marketDataList: [],
      };
    },
    methods: {
      getmarketData() {
        getAllDataSet()
          .then((res) => {
            this.marketDataList = res;
            for (let i = 0; i < this.marketDataList.length; i++) {
              this.count += this.marketDataList[i].value;
            }
            var chartDom = document.getElementById("echarts");
            var myChart = echarts.init(chartDom);
            var option;
            /*【关键代码】配置echarts 自适应部分*/
            const chartNode = new ResizeObserver(() => {
              myChart.resize();
            });
            chartNode.observe(chartDom);
            /*--------------------*/
            option = {
              color: ["#3930a0", "#ff5c3d", "#ffb0e3", "#f4df58"],
              tooltip: {
                trigger: "item",
                formatter: "{b}:{c}" + "\n\r" + "({d}%)",
              },

              series: [
                {
                  type: "pie",
                  radius: ["26%", "50%"],
                  data: this.marketDataList,
                },
              ],
            };
            option && myChart.setOption(option);
          })
          .catch((error) => {});
      },
    },
  };
</script>

🛫 自定义 Tab 切换 hover 效果

详细的操作,木鱼已经注释到代码区域一🔎 -----👇👇👇👇,小伙伴们 可自行查看

1、Dom元素部分【template】

<template>
  <div>
    <!-- Tab 切换 -->
    <ul>
      <li
        class="shapeHand"
        v-for="(item, index) in arr"
        @click="changeFont(index)"
        :class="[index == num ? 'add' : '']"
        :key="index"
      >
        {{ item }}
      </li>
    </ul>
  </div>
</template>
<script>
  export default {
    data() {
      return {
        arr: [
          "全部",
          "内容1",
          "内容2",
          "内容3",
          "内容4",
        ],
        num: 0,
      };
    },
    methods: {
      //tab栏切换高亮显示
      changeFont(index) {
        this.num = index; //默认显示第一个
      },
    },
  };
</script>

关于使用 less 处理适配问题 请移步 👉 vue后台管理做适配的最佳方案,你知道吗

/如有不明白 @remvw 的小伙伴们 请查看 关于使用 less 处理适配问题 请移步 上方 ☝☝☝ [vue后台管理做适配的最佳方案,你知道吗]/

<style lang="less" scoped>
  /*如有不明白 @remvw 的小伙伴们 请查看 关于使用 less 处理适配问题 请移步 上方 ☝☝☝ [vue后台管理做适配的最佳方案,你知道吗]*/
  @remvw: 1366 / 100vw;
  /*默认显示第一个效果*/
  .add {
    background: #e3e3f5;
    border-radius: 2 / @remvw;
    color: #3930a0;
  }
  /*自定义Tab*/
  ul {
    border-radius: 8 / @remvw;
    height: 60 / @remvw;
    display: flex;
    align-items: center;
    /* 默认显示效果 */
    li {
      width: 100 / @remvw;
      margin: 0 0 0 10 / @remvw;
      font-size: 12 / @remvw;
      font-weight: 400;
      height: 30 / @remvw;
      line-height: 30 / @remvw;
      text-align: center;
      border: none;
      cursor: pointer;/*鼠标移入时显示小手形状*/
    }
    /*鼠标移动显示效果*/
    li:hover {
      width: 100 / @remvw;
      height: 30 / @remvw;
      line-height: 30 / @remvw;
      background-color: #e3e3f5;
      border-radius: 2 / @remvw;
      color: #3930a0;
      font-size: 12 / @remvw;
    }
  }
</style>

博主致谢

非常感谢小伙伴们阅读到结尾,本期的文章就分享到这里,总结了(前端echarts大小屏自适应与自定义Tab切换hover效果),希望可以帮到大家,谢谢。

👉 如果你觉得本篇文章有帮助到您,鼓励一下木鱼吧! 点击关注+点赞+收藏+评论+转发 】支持一下哟

😛 您的支持就是我更新的最大动力。👇


往期精彩

一文图解前端WebSocket 实时通信

前端字符编码-木鱼百科【最基础、但你不一定都知道】

前端开发:颜色代码速查表【英文颜色、HEX格式、RGB格式】

前端css解决z-index 上层元素遮挡下层元素的方法

vue实现echarts可视化【定制主题 + 通用写法】

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尔滨丶陈春波

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值