假设我想为导航菜单创建常规悬停效果,但我使用 D3 过渡来“软化”效果,而不是 CSS。这适用于mouseover
-方法。但是,问题在于,如果鼠标在过渡完成之前离开悬停的链接,则过渡会卡住。如何避免这种副作用?mouseout
.on
例如,使用此代码,即使鼠标移动到其他地方,底部边框仍显示为橙色,如果您执行得太快:
d3.selectAll("a")
.on("mouseover", function() {
d3.select(this)
.style("border-bottom-color", "#fff")
.transition()
.duration(1000)
.style("border-bottom-color", "#B23600"); })
.on("mouseout", function() {
d3.select(this)
.style("border-bottom-color", "#fff"); });