D3学习记录之简单动画
来源:互联网 发布:文华编程简明教程 编辑:程序博客网 时间:2024/06/07 18:41
之前看《数据可视化实战:使用D3设计交互式图表》的时候实现过动画,动画入门部分比较简单,基本上一气呵成,没有什么太大难度,代码练习仍然是参照:
http://www.ourd3js.com/wordpress/?p=127
版权归原网站,本姑娘敲出来是为了学习和记录啦~
代码一:三个小圆圈的故事
<!DOCTYPE html><html lang="en"> <head> <meta charset="utf-8"> <title>D3:Circle Transition</title> <script type="text/javascript" src="../d3/d3.min.js"></script> </head> <body> <script type="text/javascript"> var height = 400, width = 400; var svg = d3.select("body") .append("svg") .attr("height", height) .attr("width", width); var circle1 = svg.append("circle") .attr("cx", 100) .attr("cy", 100) .attr("r", 45) .style("fill","green"); circle1.transition() .duration(1000) .attr("cx", 300); var circle2 = svg.append("circle") .attr("cx", 100) .attr("cy", 200) .attr("r", 45) .style("fill", "green"); circle2.transition() .duration(1500) .attr("cx",300) .style("fill", "red"); var circle3 = svg.append("circle") .attr("cx", 100) .attr("cy", 300) .attr("r", 45) .style("fill", "green"); circle3.transition() .duration(2000) .ease("bounce") .attr("r", 15) .attr("cx", 300) .style("fill","red"); </script> </body></html>
代码二:让上一次画的柱状图动起来~
<!DOCTYPE html><html lang="en"> <head> <meta charset="utf-8"> <title>D3:reveiw</title> <style type="text/css"> .axis line, .axis path { fill:none; stroke:black; shape-rendering:crispEdges; } .axis text { font-family: sans-serif; font-size: 11px; } .Myrect { fill:steelblue; } .MyText { fill:white; font-size: 11px; text-anchor:middle; } </style> <script type="text/javascript" src="../d3/d3.min.js"></script> </head> <body> <script type="text/javascript"> var height = 400, width = 400; var svg = d3.select("body") .append("svg") .attr("height", height) .attr("width", width); var dataset = [6, 18, 39, 77, 20, 43]; var padding = {top:20, bottom:20, left:30, right:30}; var xScale = d3.scale.ordinal() .domain(d3.range(dataset.length)) .rangeRoundBands([0, width - padding.left - padding.right]); var yScale = d3.scale.linear() .domain([0, d3.max(dataset, function (d) {return d;})]) .range([height - padding.top - padding.bottom,0]); //创建坐标轴,用svg var xAxis = d3.svg.axis() .scale(xScale) .orient("bottom"); var yAxis = d3.svg.axis() .scale(yScale) .orient("left"); var rectPadding = 6; //创建矩形元素 var rects = svg.selectAll(".Myrect") .data(dataset) .enter() .append("rect") .attr("class", "Myrect") .attr("transform","translate(" + padding.left + "," + padding.top + ")") .attr("x", function (d, i) {return xScale(i) + rectPadding / 2;}) .attr("y", function (d) { return yScale(0); }) .attr("height", function (d) {return 0;}) .attr("width", xScale.rangeBand() - rectPadding); //rangeBand() //创建矩形的动画 rects.transition() .delay(function (d,i) {return i * 250;}) .duration(2500) .ease("bounce") .attr("y", function (d) {return yScale(d);}) .attr("height", function (d) {return height - padding.top - padding.bottom - yScale(d);}) var texts = svg.selectAll(".MyText") .data(dataset) .enter() .append("text") .attr("class","MyText") .attr("transform", "translate(" + padding.left + "," + padding.top + ")") .attr("x",function (d,i) {return xScale(i) + rectPadding / 2;}) .attr("y", function (d) {return yScale(0);}) .attr("dx", (xScale.rangeBand() - rectPadding) / 2) .attr("dy",15) .text(function (d) {return d;}) texts.transition() .delay(function (d,i) {return i * 250;}) .duration(2500) .ease("bounce") .attr("y", function (d) {return yScale(d);}); svg.append("g") .attr("class","axis") .attr("transform","translate(" + padding.left + "," + (height - padding.bottom) + ")") .call(xAxis); svg.append("g") .attr("class", "axis") .attr("transform", "translate(" + padding.left + "," + padding.top + ")") .call(yAxis); </script> </body></html>
动画真是太棒了,让图表一下子生动起来~
0 0
- D3学习记录之简单动画
- D3学习记录之画柱状图
- 关于D3.js学习记录
- cocos2d学习记录(四)-简单动画
- D3常用的简单的API记录
- iOS学习之简单动画
- D3.js之饼图动画
- D3.js之饼图动画2
- D3.js之折线图动画
- D3学习之弦布局
- Java学习之简单记录
- D3学习之:D3.js中的12中地图投影方式
- Android学习记录(十九)-简单的动画清除
- iOS开发学习之简单动画
- Android Animations动画之简单学习
- D3.JS之别人家的饼图动画
- D3学习之update、enter、exit
- D3学习记录:布局1——饼状图
- iOS9 添加 dylib
- 学着用map统计字符出现的次数,也可以用来标记字符是否出现过
- 使用Matlab对二值图像进行轮廓提取
- java中数据类型转换
- ReactJs入门思路小指南
- D3学习记录之简单动画
- 单例模式(Singleton)
- C# List根据值找到索引值方法
- mybatis 参数
- STL中next_permutation用法小结和小技巧总结与原理。
- 图书管理系统
- JS控制iFrame切换加载不同网页内容
- ArcEngine 无法将类型为"Systerm._ComObject"的对象强制转换为类型******
- stty 命令说明及使用讲解