【发布时间】:2020-03-17 10:23:41
【问题描述】:
以下两个问题与 CSS 的关系比与 D3 的关系更大。
let svg = d3.select('body')
.append('svg');
svg.append('circle')
.attr('cx', 100)
.attr('cy', 100)
.attr('r', 50)
.attr('class', ball)
.on('mouseenter', function() {
d3.select(this)
.classed('over', true);
});
circle.ball {
fill: blue;
}
circle.ball over {
fill: yellow;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
如果我在上面的代码中写
circle {
fill: blue;
}
而不是
circle.ball {
fill: blue;
}
然后圆圈最初填充为蓝色。为什么设置类为ball不影响填充?
我知道:hover CSS 选项。在下文中,我想使用mouseenter 事件和类设置来实现更改。当事件被触发时,一个额外的类over 调整fill。为什么插入额外的类不影响填充?
具体来说,circle.ball over 是否是正确的规范来说明“仅当两个类 ball 和 over 同时存在于一个圆圈时”?
(鼠标退出的对称情况以及设置.classed('over', false)被省略。)
【问题讨论】:
标签: javascript css d3.js