Recharts:如何禁用工具提示内容随鼠标光标移动
Recharts: How to disable tooltip content from moving with mouse cursor
有没有办法阻止工具提示的内容跟随鼠标指针?
如图所示,内容位于指针下方。如果指针向下移动,内容将移至图表顶部。有没有办法阻止这种行为并将内容保留在指针悬停的栏的顶部?
您需要为工具提示定义一个 position
道具,例如
<Tooltip position={{ x: 100, y: 140 }}/>
您可以在 Recharts docs
中查看更多相关信息
编辑:
如果您需要在悬停栏上方呈现工具提示,据我在文档中所见,没有开箱即用的解决方案。但是您可以手动管理它:
- 使用
<Bar>
的 onMouseEnter
方法获取悬停条的位置
- 将该值(带有工具提示的偏移量)放入状态
- 根据新状态更新
<Tooltip>
的位置
const App = () => {
const [tooltipPosition, setTooltipPosition] = useState({ x: 0, y: 0 })
const onMouseEnter = (e) => {
const tooltipHeight = 60 // you need to change this based on your tooltip
setTooltipPosition({ x: e.x, y: e.y - tooltipHeight })
}
return (
<BarChart
width={500}
height={300}
data={data}>
<CartesianGrid strokeDasharray="3 3" />
<XAxis dataKey="name" />
<YAxis />
<Tooltip
position={tooltipPosition}
allowEscapeViewBox={{ y: true }}/>
<Legend />
<Bar dataKey="key" fill="#1DDDFF" onMouseEnter={onMouseEnter}/>
</BarChart>
)
}
有没有办法阻止工具提示的内容跟随鼠标指针?
如图所示,内容位于指针下方。如果指针向下移动,内容将移至图表顶部。有没有办法阻止这种行为并将内容保留在指针悬停的栏的顶部?
您需要为工具提示定义一个 position
道具,例如
<Tooltip position={{ x: 100, y: 140 }}/>
您可以在 Recharts docs
中查看更多相关信息编辑:
如果您需要在悬停栏上方呈现工具提示,据我在文档中所见,没有开箱即用的解决方案。但是您可以手动管理它:
- 使用
<Bar>
的 - 将该值(带有工具提示的偏移量)放入状态
- 根据新状态更新
<Tooltip>
的位置
onMouseEnter
方法获取悬停条的位置
const App = () => {
const [tooltipPosition, setTooltipPosition] = useState({ x: 0, y: 0 })
const onMouseEnter = (e) => {
const tooltipHeight = 60 // you need to change this based on your tooltip
setTooltipPosition({ x: e.x, y: e.y - tooltipHeight })
}
return (
<BarChart
width={500}
height={300}
data={data}>
<CartesianGrid strokeDasharray="3 3" />
<XAxis dataKey="name" />
<YAxis />
<Tooltip
position={tooltipPosition}
allowEscapeViewBox={{ y: true }}/>
<Legend />
<Bar dataKey="key" fill="#1DDDFF" onMouseEnter={onMouseEnter}/>
</BarChart>
)
}