综述
今天在使用 D3 的时候遇到一个 css 的问题,这里留作记录防止以后踩坑。
问题
在使用 d3 添加鼠标响应事件,想要修改 css,结果不会修改。
1 | let rec = svg.append("rect") |
1 | .view:hover { |
这里添加了 mouseover
和 mouseout
事件,借此改变 rect
的样式,结果没有成功。
解决方法
折腾了好久,问了一下大佬立马解决。
打开 chrome 的调试工具。
可以看到这里 .view:hover
和 .view
都是被 element.style
覆盖了。
这个 element.style
一般是内联样式,因此查看自己的代码,发现在定义 rect
的时候已经定义了 style
: .style("stroke", "red").style("stroke-width", "2px")
。
将这两句去掉,可以得到最终结果:
hover
unhover
完整代码
D3Component.js
1 | import React from 'react'; |
D3Component.css
1 | .view:hover { |