reactjs 如何在React Chart.js中更改工具提示的位置和样式?

fnx2tebb  于 2023-06-22  发布在  React
关注(0)|答案(1)|浏览(92)

我在React项目中使用了折线图。我需要做的是自定义工具提示的样式并更改其位置。目前,它显示在图表的左下角时,悬停(虽然它显示在其官方文档中的线悬停点)。下面是我的代码:

import React from "react";
import { CChart } from "@coreui/react-chartjs";
import "./App.css";
const StatsChart = () => {
  const data = {
    labels: ["January", "February", "March", "April", "May", "June"],
    given: [5000, 6000, 4500, 7000, 5500, 8000],
    raised: [4000, 5500, 3500, 6000, 5000, 7000]
  };

  const options = {
    plugins: {
      legend: {
        display: false
      },
      tooltip: {
        enabled: true
      }
    }
  };

  return (
    <div className="px-6 pt-6">
      <h1>My design:</h1>
      <CChart
        options={options}
        type="line"
        data={{
          labels: data.labels,
          datasets: [
            {
              label: "Given",
              backgroundColor: "rgba(220, 220, 220, 0.2)",
              borderColor: "#00ADE9",
              pointBackgroundColor: "#00ADE9",
              pointRadius: "0",
              pointBorderColor: "#fff",
              data: data.given.map((val) => val / 100)
            },
            {
              label: "Raised",
              backgroundColor: "rgba(151, 187, 205, 0.2)",
              borderColor: "#00c98b",
              pointBackgroundColor: "#00c98b",
              pointRadius: "0",
              pointBorderColor: "#fff",
              data: data.raised.map((val) => val / 100),
              borderDash: [5, 5]
            }
          ]
        }}
      />

      <h1>What I need:</h1>
      <img src="/line-chart.png" />
    </div>
  );
};

export default StatsChart;

这里是codesandbox示例的链接,以便更好地演示,并附上所需内容的图像:https://codesandbox.io/s/line-chart-idf789?file=/src/App.js:0-1492

izkcnapc

izkcnapc1#

Chart.js中的工具提示呈现在一个div中,类为charts-tooltip。您可以添加一些自定义CSS规则来设置工具提示框的样式。我能够通过将位置设置为绝对位置来改变它的位置。
例如,下面的CSS会将工具提示的背景颜色更改为白色,文本颜色更改为蓝色,边框更改为1px的蓝色实线:

.chartjs-tooltip {
  background: $white;
  color: $blue;
  position: absolute;
  border: 1px solid $blue;
}

相关问题