D3.js 动画 过渡效果 (V3版本)
var width = 600;
var height = 400; var svg = d3.select("#body")
.append("svg")
.attr("width",width)
.attr("height",height) svg.append("rect")
.attr("fill","yellow")
.attr("x",100)
.attr("y",100)
.attr("width",100)
.attr("height",30)
.transition()
.attr("width",300)


var rect = svg.append("rect")
.attr("fill","yellow")
.attr("x",100)
.attr("y",100)
.attr("width",100)
.attr("height",30)
//打印rect
console.log(rect) //rect是选择集
//启动过渡效果
var rectTran = rect.transition()
//打印rectTran
console.log(rectTran) //rectTran是一个过渡对象


var rect = svg.append("rect")
.attr("fill","yellow")
.attr("x",100)
.attr("y",100)
.attr("width",100)
.attr("height",30)
var rectTran = rect.transition()
.delay(500) //延迟500ms再开始
.duration(1000) //过渡时长为1000ms
.ease("blunce") //过渡样式
.attr("width",300) //目标属性
var rect = svg.append("rect")
.attr("fill","yellow")
.attr("x",100)
.attr("y",100)
.attr("width",100)
.attr("height",30)
var rectTran = rect.transition() //开始一个过渡
.attr("width",300) //目标宽度为300
.transition() //开始一个过渡
.attr("height",300) //目标高度为300
.transition() //开始一个过渡
.attr("width",100) //目标宽度为100
.transition() //开始一个过渡
.attr("height",100) //目标高度为100
.attr("width",100)
.transition()
.attr("width",300)
var rect = svg.append("rect")
.attr("fill","yellow")
.attr("x",100)
.attr("y",100)
.attr("width",100)
.attr("height",30)
var rectTran = rect.transition()
.duration(2000)
.attrTween("width",function(d,i,a){
return function(t){
return Number(a) + t * 300
}
})
svg.append("rect")
.attr("fill","yellow")
.attr("x",100)
.attr("y",100)
.attr("width",100)
.attr("height",30)
.transition()
.duration(2000)
.attr("fill",'red')
svg.append("rect")
.attr("fill","yellow")
.attr("x",100)
.attr("y",100)
.attr("width",100)
.attr("height",30)
.transition()
.duration(2000)
.attr("width",300)
var text = svg.append("text")
.attr("fill","white")
.attr("x",150)
.attr("y",100)
.attr("dy","1.2em")
.attr("text-anchor","end")
.text(100)
var initx = text.attr("x")
var initText = text.text()
var textTran = text.transition()
.duration(2000)
.tween("text",function(){
return function(t){
d3.select(this)
.attr("x",Number(initx) + t * 250 )
.text(Math.floor(Number(initText) + t * 300 ))
}
})
//当t为0时,函数体力的操作是:
d3.select(this)
.attr("x",150 + 0 * 250)
.text(Math.floor(100 + 0 * 300)) //当t为1时,函数体里的操作是:
d3.select(this)
.attr("x",150 + 1 * 250 )
.text(Math.floor(100 + 1 * 300))

var rect = svg.append("rect")
.attr("fill","yellow")
.attr("x",100)
.attr("y",100)
.attr("width",100)
.attr("height",30)
rect.transition()
.attr("width",0)
.remove()
D3.js 动画 过渡效果 (V3版本)的更多相关文章
- D3.js 线段生成器 (V3版本)
线段生成器 与线段生成器相关的方法: d3.svg.line() //创建一个线段生成器. line(data) //使用线段生成器绘制data数据. line.x([x]) //设置或获取线 ...
- D3.js 弦生成器(V3版本)
弦生成器(Chord Generator) 弦生成器(Chord Generator)根据两段弧来绘制弦,共有五个访问器,分别为source().target().radius().startAn ...
- D3.js 区域生成器 (V3版本)
区域生成器(Area Generator) 区域生成器(Area Generator)用于生成一块区域,使用方法与线段生成器类似.线段生成器地址:数据访问器有x().x0().x1().y().y ...
- D3.js(v3)+react 制作 一个带坐标与比例尺的柱形图 (V3版本)
现在用D3.js + react做一个带坐标轴和比例尺的柱形图.我已经尽力把代码全部注释上了,最后我也会把完整柱形图代码奉上.如果还有疑惑的,可以去翻看一下我之前介绍的方法,以下方法都有介绍到. 还有 ...
- D3.js的v5版本入门教程(第十二章)—— D3.js中各种精美的图形
D3.js的v5版本入门教程(第十二章) D3中提供了各种制作常见图形的函数,在d3的v3版本中叫布局,通过d3.layout.xxx,来新建,但是到了v5,新建一个d3中基本的图形的方式变了(我也并 ...
- D3.js的v5版本入门教程(第十章)
在这一章我们干点有趣的事——让我们上一章绘制的图表动起来,这样岂不是很有意思 为了让图表动起来,我们还是需要以下新的知识点 .attr(xxx) .transition() .attr(xxx),tr ...
- D3.js使用过程中的常见问题(D3版本D3V4)
目录 一.学习D3我必须要学习好SVG矢量图码? 二.如何理解D3给Dom节点绑定数据时的Update.Enter和Exit模式 三.D3绑定数据时用datum与data有什么不一样? 四.SVG图中 ...
- d3.js制作连线动画图和编辑器
此文章为原创文章,原文地址:https://www.cnblogs.com/eagle1098/p/11431679.html 连线动画图 编辑器 效果如上图所示.本项目使用主要d3.jsv4制作,分 ...
- D3.js的v5版本入门教程(第十三章)—— 饼状图
D3.js的v5版本入门教程(第十三章) 这一章我们来绘制一个简单的饼状图,我们只绘制构成饼状图基本的元素——扇形.文字,从这一章开始,内容可能有点难理解,因为每一章都会引入比较多的难理解知识点,在这 ...
随机推荐
- 一份详尽的 Java 问题排查工具清单,值得收藏!
| grep 5 -A 3 #上匹配seq 10 | grep 5 -B 3 #下匹配seq 10 | grep 5 -C 3 #上下匹配,平时用这个就妥了cat f.txt | g ...
- Python-02 生成器表达式,列表推导式
列表推导式和生成器表达式 列表推导式,生成器表达式1,列表推导式比较直观,占内存2,生成器表达式不容易看出内容,省内存. [ 变量(加工后的数据) for 变量i in 可迭代的数据类型 ] 列表 ...
- redis 入门之列表
lpush 将一个或多个值 value 插入到列表 key 的表头如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头: 比如说,对空列表 mylist 执行命令 LPU ...
- oracle number 类型 只显示10位精度
,) show numwidth; 设置为15位 ; xa ------------------ 123456789012.12 或者 TO_CHAR(xa,'FM099999999999.09999 ...
- 40th 要掀桌子么 还是尬坐吧
今日学习精华: 面向对象编程里面有一句 非常经典的描述:-----通过类实例化一个对象,通过对象调方法----- 注意:对象调用的 方法 ,即 函数一定要有 参数 def ...
- oscache缓存
oscache 使用总结 Posted on 2009-05-22 22:45 青果 阅读(1270) 评论(2) 编辑 收藏 所属分类: 技术点滴 前阵子对公司网站进行了性能优化,其中,有一项 ...
- Java中的LinkedList
- DEDE织梦标签经常调用的内容
DEDE织梦标签名称:{/dede:arclist} 详解 标签名称:arclist标记简介:织梦常用标记,也称为自由列表标记,其中imglist.imginfolist.specart.coolar ...
- applicationContext-redis.xml配置文件
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...
- psecurity配置
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...