chart 之类如果用别人的库 其实 最终展示的 是 svg .然后 d3Js 是一个主要基于 svg 的一个 dom 操作的库. 最近学习了一下. 因为有些需要可能:
- 用别人库可能杀鸡用牛刀
- 定制需求
- 如果老板想要一些炫的动效,或者一些有交互的组件, 比如一个行驶的小车.这些其实用 d3 很方便.
- 自己想折腾一下吧……..多了解一些
d3 vs threeJs
区别
- d3 主要是基于 svg 的 ,如果是操作几个 dom,形状这个合适
- threejs 主要是基于 webgl ,canval 的库,3d 效果的复杂的图像需求
svg
svg 学习可以看看 mdn 的官网 .
主要的元素
- path
- line
- rect
- text
d3 学习
我主要是看了一堆 frontendMaster 的课程.
个人感觉笔记难理解的是 d3 的链式调用吧.一开始 .主要就是有一些是找到 dom ,然后可以之间套用方法.
- .call 方法 参考stackoverflow d3 call function
.call()是 D3 API 函数,不要与Function.prototype.call() 混淆selection.call(function, arguments…)
完全调用一次指定的函数,并将此选择与任何可选参数一起传递。返回此选择。这等效于手动调用功能,但有助于方法链接。例如,要在可重用函数中设置几种样式:
现在说:d3.selectAll("div").call(name, "John", "Snow");
这大致相当于:name(d3.selectAll("div"), "John", "Snow");
唯一的区别是 selection.call 总是返回选择内容,而不是被调用函数 name 的返回值。
参考资料
- https://www.cassie.codes/posts/swipey-image-grids/ svg 的动效
- https://wattenberger.com/blog/react-and-d3 感觉挺炫的,不过感觉有点代码不全