博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
d3.js学习笔记--Mike Bostock: What makes Software Good?
阅读量:6083 次
发布时间:2019-06-20

本文共 1114 字,大约阅读时间需要 3 分钟。

  hot3.png

enter, update和exit

h
e
l
l
o

这里实际的数据为: ["h", "e", "l", "l", "o"]. 我们需要将实际的数据和<text>相关联起来. 所以我们需要以下步骤:

1) 使用data函数将数据绑定到所选择的DOM元素<text>上.

2) 使用enter函数进入每个需要修改的<text>元素.

3) 更新<text>元素(例如使用attr来更新属性)

4) 使用exit来退出此次的修改.

 

transition

transition为过渡, 从选中的当前元素移动到目标元素位置.

我们在界面上显示hello, 并缓慢的展开其坐标x的位置:

1. select用来选中要操作的DOM元素, 而append用来生成新的DOM元素.

2. 使用data()函数读取数组, 这里需要使用selectAll选取所有的text. 例如数组data有五个元素, 则会生成五个<text>

3. 使用transition()开启过渡功能, 使用duration设定过渡的时间(毫秒)

4. 运行程序, 我们会看到坐标x/y在快速的变大, 然后"hello"字母会扩展开来.

仔细查看如上代码的运行结果会发现, 实际上Y和X的坐标变化几乎是同时的, 而并非Y轴扩展完毕后, X轴才继续扩展.

d3.js的作者解释这种情况时候, 说两个看似同步执行, 实际上它们之间的差距就几毫秒.

如果想要顺序执行, 则调用每一次的transition/duration:

text.enter()      .append('text')      .transition()      .duration(2000)      .attr('dy', function(d, i) { return (i + 1) * 32; })      .transition()      .duration(1000)      .attr('x', function(d, i) { return i * 32; })      .text(function(d) { return d; });

 

后记

1. 学习资料来自: 

 

 

转载于:https://my.oschina.net/voler/blog/761440

你可能感兴趣的文章
Ubuntu MYSQL5.5 MHA+半同步复制+keepalive
查看>>
设置卷影副本
查看>>
Shell的select语句
查看>>
Exchange邮件传输和路由概述
查看>>
关于LoadRunner监控windows和Linux的说明
查看>>
卸载双系统
查看>>
我的友情链接
查看>>
Eclipse设置:背景与字体大小和xml文件中字体大小调整
查看>>
Spring:源码解读Spring IOC原理
查看>>
RHCA-Memory
查看>>
VMware 克隆CentOS后无法启动网卡的解决
查看>>
关于Ubuntu不启动X,直接进入字符界面
查看>>
c#启动EXE文件(简单的)
查看>>
读书笔记20:中介者模式
查看>>
中间件笔记
查看>>
RHEL6.4_64安装(最全最细的安装过程)
查看>>
服务器硬件工程师从入门到精通视频教程-RAID篇发布了!
查看>>
colspan 属性
查看>>
zabbix安装
查看>>
replace into 与 select into 的区别
查看>>