暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据可视化-D3.js框架:「19]给 D3 元素添加悬停效果

路条编程 2021-11-09
1241



这一系列课程将介绍D3.js 或 D3 代表数据驱动的文档。D3 是一个 JavaScript 库,用于在浏览器中创建动态和交互式数据可视化。它是为使用常见的 web 标准而构建的,即 HTML、CSS 和可伸缩矢量图形(SVG)。

D3 获取输入数据并将其映射为该数据的可视表示。它支持多种不同的数据格式。D3 允许您将数据绑定(或附加)到文档对象模型(DOM)。您可以使用带有 D3 内置方法的 HTML 或 SVG 元素将数据转换为可视化。

D3 为您提供了对数据表示的大量控制。本课程将介绍 D3 库的基本功能以及如何使用 D3 库创建可视化效果。

给 D3 元素添加悬停效果

我们可以为用户的鼠标悬停行为添加高亮显示的效果。到目前为止,矩形的样式应用了内置的 D3 和 SVG 方法,但是我们也可以使用 CSS 来实现。

我们可以使用 attr() 方法在 SVG 元素上设置 CSS 类。然后用 :hover 伪类为我们新添加的 CSS 类设置鼠标悬停的效果。

用 attr() 方法给所有的 rect 元素都添加 bar 类。当鼠标悬停在元素上时,它的 fill 将变为棕色。

完整代码如下所示:

<style>
.bar:hover {
fill: brown;
}
</style>
<body>
<script>
    const dataset = [12312217251829149];


const w = 500;
const h = 100;


const svg = d3.select("body")
.append("svg")
.attr("width", w)
.attr("height", h);


svg.selectAll("rect")
.data(dataset)
.enter()
.append("rect")
.attr("x", (d, i) => i * 30)
.attr("y", (d, i) => h - 3 * d)
.attr("width", 25)
.attr("height", (d, i) => 3 * d)
.attr("fill", "navy")
       .attr("class","bar");


svg.selectAll("text")
.data(dataset)
.enter()
.append("text")
.text((d) => d)
.attr("x", (d, i) => i * 30)
.attr("y", (d, i) => h - (3 * d) - 3);
</script>
</body>


今天就讲到这里,如果有问题需要咨询,大家可以直接留言或扫下方二维码关注公众号。也可以添加 happyzjp 微信受邀加入学习社群,我们会尽力为你解答。练习网站已经正式上线,大家可以登陆网站 http://www.icoderoad.com 进行文章中示例的练习。


文章转载自路条编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论