`
Supanccy2013
  • 浏览: 223639 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

D3-3 进入,更新,退出模式例子(函数作为数据)

    博客分类:
  • D3
阅读更多
   如果你把函数绑定给图片,那么d3会自动调用这个函数。啥都不说了,都在例子中了。


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
  .v-bar {
    min-height: 1px;
    min-width: 30px;
    background-color: #4682b4;
    margin-right: 2px;
    font-size: 10px;
    color: #f0f8ff;
    text-align: center;
    width: 10px;
    display: inline-block;
}
</style>
<script type="text/javascript" src="/angularJs/js/d3_v2.js"></script>
<script type="text/javascript">
    //定义全局变量data,每次调用render对这个data
    //进行操作(增加数据,删除数据等
    var data = [];
    
    var next = function(x){
    	return 15 + x*x;
    };
    
    var newData = function(){
    	data.push(next);
    	return data;
    }
    
    function render(){
    	
    	//第一:选中container下面的所有div(尽管这时还没有div)
    	//第二:调用data(new newData)进行数据与图形绑定。
    	//第三:注意此时进行绑定的不是直接的数据而是newData方法
    	       //D3框架如果看到绑定的不是数据,而是函数,d3会自动
    	       //调用这个函数,当前这个函数一定是会返回数据的函数
               //每次调用render函数,就会自动调用newDate函数
    	var selection = d3.select("#container").selectAll("div").data(newData);
    	
    	//给没有绑定图片的数据,添加图片样式
    	selection.enter().append("div").append("span");
    	
    	//给没有绑定数据的图片样式删掉
    	selection.exit().remove();
    	
    	//更新已经绑定数据图片的数据(更新他们的高度,和span张的文字)
    	selection.attr("class","v-bar")
    	.style("height",function(d,i){  //特别注意这里的参数d是一个函数
    		return d(i) + "px";
    	})
    	.select("span").text(function(d,i){
    		return d(i);
    	});
    }
    
    //每隔1500毫秒调用render函数
    setInterval(function(){
    	render();
    },1500);
    
</script>
</head>
<body>
<div id="container"></div>
</body>
</html>
分享到:
评论

相关推荐

    javascript-d3源码

    - **进入-更新-退出(Enter-Update-Exit)模式**:这是D3处理数据变化的标准模式,用于添加、修改和删除DOM元素。 - **转换(Transitions)**:用于平滑地改变元素属性,创建动画效果。 - **尺度(Scales)**:将...

    d3.js示范代码,很多很多,很好用

    3. **数据进入、更新和退出(Enter, Update, Exit)** 这是D3.js处理动态数据流的关键机制。当数据发生变化时,`enter()`, `update()`, `exit()`模式确保元素与数据之间的一致性。新数据对应元素进入,已存在的数据...

    D3 data join概念讲解例子

    D3.js,全名Data-Driven Documents,是由Mike Bostock开发的一款强大的JavaScript库,用于在...在这个例子中,你可以期待看到一个清晰的演示,如何利用D3.js将数据与图形元素关联,并动态地根据数据变化更新视觉表示。

    d3-class-ex:拉里课堂演示的克隆

    3. **进入、更新、退出机制**:掌握D3的enter()、update()和exit()模式,用于动态地添加、修改和删除SVG元素。 4. **绘制图形**:学习如何使用D3的几何变换和形状生成函数,如`rect()`, `circle()`, `line()`等来...

    D3js-Samples:图表的 D3Js 动画示例

    4. **进入-更新-退出模式**:D3.js的这一机制使得在数据改变时,可以高效地添加、修改和移除SVG元素,从而实现动态更新。 5. **过渡和动画**:`d3.transition()` 用于创建平滑的动画效果,通过设置持续时间和属性...

    数据结构习题答案

    题目中提到的数据结构(D,R)是一个有向图的例子,其中顶点集合D = {d1, d2, d3, d4},边集合R = {(d4,d3), (d3,d2), (d2,d1)}。根据图论的画法惯例,这个逻辑结构可以通过绘制节点和有向边来直观表示,每个节点代表一...

    Direct3D与MFC相结合的小例子

    在这个小例子中,我们看到"茶壶"作为标签,这通常是指在计算机图形学中使用的经典测试模型—— Utah Teapot。它在3D编程的示例中经常出现,因为它有一个相对复杂但又易于识别的形状,适合展示基本的3D渲染技术。 ...

    DirectX 图形接口指南(2).docx

    `WNDCLASSEX` 结构用于定义窗口类,包括窗口回调函数 `MsgProc`,窗口类名 "D3D Tutorial",以及窗口样式 `WS_OVERLAPPEDWINDOW`,使得窗口具有标准的窗口控件,如最大化、最小化和关闭按钮。 2. **初始化 Direct3D...

    利用DirectX9 渲染三角形(2D)

    在我们的例子中,使用`D3DPRIMITIVETYPE_TRIANGLELIST`类型,参数为1表示绘制一个三角形。 最后,呈现帧并检查是否需要交换缓冲区,这通常通过调用`Present`函数完成。这个过程会重复进行,直到程序退出。 在...

    键盘扫描码大全

    在这个例子中,`getchar()`函数被用来读取来自标准输入的单个字符。当用户按下ESC键时,程序会退出循环并终止。此代码示例仅用于说明如何读取键盘扫描码,实际应用中可能需要更复杂的处理逻辑。 综上所述,键盘扫描...

    基于C++实现kinect+opencv 获取深度及彩色数据

    如果在打开数据流的过程中失败,程序会输出错误信息并退出。 文章中还提到了Kinect传感器的一些参数,包括最大距离3500mm和最小距离200mm,这些参数分别用于计算物体距离传感器的最大和最小可检测范围。640x480代表...

Global site tag (gtag.js) - Google Analytics