【 D3.js 入门系列 --- 8 】 对话操做(事件)

    本人的我的博客为: www.ourd3js.com javascript

    csdn博客为: blog.csdn.net/lzhlzz html

    转载请注明出处,谢谢。java


    这一节介绍怎样进行对话的操做,如鼠标单击,鼠标滑过等。浏览器

    对一个被选择的元素,加入对话操做,代码例如如下:app

.on("click", function(){

} )
    函数可以是无名函数。也可以是自定义的函数。上面代码监听的是鼠标单击的事件。但鼠标在被选择对象上单击时,就会调用函数 function 。

    常用的事件(event)有:svg

  • click  : 鼠标单击某元素时,至关于 mousedown 和 mouseup 组合在一块儿
  • mouseover  : 鼠标移到某元素上
  • mouseout  : 鼠标从某元素移开
  • mousemove : 鼠标被移动
  • mousedown : 鼠标button被按下
  • mouseup : 鼠标button被松开
  • dblclick  :  鼠标双击

    如下使用在5.1节中作的样例。为当中的柱形图加入对话操做。加入一部分代码就能够:
svg.selectAll("rect")
		   .data(dataset)
		   .enter()
		   .append("rect")
		   .attr("x", function(d,i){
				return 30 + xScale(i);
		   } )
		   .attr("y",function(d,i){
				return 50 + 500 - yScale(d) ;
		   })
		   .attr("width", function(d,i){
				return xScale.rangeBand();
		   })
		   .attr("height",yScale)
		   .attr("fill","red")
		   .on("click",function(d,i){
				d3.select(this)
				  .attr("fill","green");
		   })
		   .on("mouseover",function(d,i){
				d3.select(this)
				  .attr("fill","yellow");
		   })
		   .on("mouseout",function(d,i){
				d3.select(this)
				  .transition()
		          .duration(500)
				  .attr("fill","red");
		   });
    上面的代码加入了鼠标点击( click ),鼠标移入( mouseover )。鼠标移出( mouseout )三个操做。


    上面的操做的函数中都调用了 d3.select(this) , 这是表示选择当前的元素,this 是当前的元素,因为在事件中一般要改变被点击的元素等,因此常有这段代码,要记住。函数

    另外,为了使得鼠标移出元素时产生渐变效果,使用了 transition 和 duration ,具体请看第6节。
    效果图例如如下:


    用鼠标实际试试看吧,结果可见:   http://www.ourd3js.com/demo/event.html   。完整的代码可在浏览器中右键选择栏中查看。
相关文章
相关标签/搜索