css - d3 中鼠标悬停时使矩形/圆形变暗

标签 css svg d3.js

我正在使用 d3 绘制几个用某些颜色填充的矩形和圆形。

现在,当鼠标指针悬停在我的对象上时,它们会变暗。我的想法是使用 CSS,在每个对象周围的 g 标签上放置带有 alpha 的黑色背景:

g:hover {
  background-color: rgba(0, 0, 0, .5);
}

但这行不通。当我在那里放置 opacity: .5 时它确实有效,但我希望它更暗,而不是更亮。有人有什么提示吗? 谢谢!

最佳答案

我认为您无法在 SVG 元素上可靠地使用悬停伪代码。相反,使用 d3 在鼠标悬停时添加一个类,并在鼠标移开时将其删除。

例如:

svg.append("g")
    .on("mouseover", function() {
        d3.select(this).classed("hover", true);
      })
    .on("mouseout", function() {
         d3.select(this).classed("hover", false);
    })

然后在 CSS 中

g.hover {
    background-color: rgba(0, 0, 0, .5);
}

希望有帮助。

编辑:也许你可以使用 :hover。请参阅此问题和答案 https://stackoverflow.com/a/9210392/2594702 .

基本上它说使用 fill: rgba(0, 0, 0, .5) 而不是 background-color

我确信我记得在学习 D3 时使用 mouseover 和 mouseout 时读过的内容。也许当时的浏览器支持不如现在。

关于css - d3 中鼠标悬停时使矩形/圆形变暗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20002625/

相关文章:

jquery - 将鼠标悬停在 jquery 上以查看子级元素

javascript - SVG 并排 - 将它们全部旋转 90 度

python - 在 Python 中将带有嵌入式 CSS 的 SVG 转换为 PDF

javascript - 使用 SVG 矩形单击处理程序更改 react 状态

javascript - 删除文本层并替换为图像

css - 如何使用css媒体查询切换动画

html - 列表导航——左右对齐

javascript - 标记映射 : Insert the mindmap to the HTML

javascript - 在特定力布局 D3 中标记节点的问题

javascript - d3 - 标记日历示例