博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【d3.js v4基础】过渡transition
阅读量:5893 次
发布时间:2019-06-19

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

transition

var t = d3.transition()    .duration(750)    .ease(d3.easeLinear);d3.selectAll(".apple").transition(t)    .style("fill", "red");d3.selectAll(".orange").transition(t)    .style("fill", "orange");

transition.delay

设置或获取延迟时间,value可以为常量也可以为函数,如果是函数则可以为过渡集中的每个元素设置不同的延迟时间。默认延迟时间为0.

为不同的元素设置不同的延迟时间:

transition.delay(function(d, i) { return i * 10; });

transition.duration([value])

设置或获取过渡时间,value可以为函数。

transition.ease([value])

设置或获取easing function(过渡方式),默认为d3.easeCubic.

selection.interrupt([name])

中断选择集上活动的名为name的过渡。如果name所表示的过渡还没有开始,则也不用开始了。如果没有指定name,则使用null。

universal selector(通配符), *, 选中所有的后代元素,你也可以通过如下方式中断G元素以及其所有后代的过渡:

selection.interrupt().selectAll("*").interrupt();

d3.transition([name])

d3.selection()  .transition(name)

transition.selection() <>

返回当前过渡集中所包含的selection。也就是从过渡集中将选择集分离出来。

transition.select(selector)

transition  .selection()  .select(selector)  .transition(transition)

transition.selectAll(selector)

同上,只不过是选择所有符合条件的元素,然后在这些符合元素上都创建过渡,等价于:

transition  .selection()  .selectAll(selector)  .transition(transition)

实例

<script>

var width = 960;    var height = 500;    var svg = d3.select("body").append("svg")        .attr("width", '960')        .attr("height", "500")    var g = svg.append("g")        .attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");    var c = g.append("circle")        .attr('cx', 200)        .attr("cy", 100)        .attr('r', 50)        .attr("fill", 'red');        g.append("rect")        .attr('x', 100)        .attr("y", 100)        .attr('width', 150)        .attr('height',150)        .attr("fill", 'red');    var t = d3.transition()        .duration(1750)        .ease(d3.easeLinear);    var gt = g.transition(t)        .duration(750)        .ease(d3.easeLinear)        .attr('transform', "translate(200,200)");        gt.selection()        .selectAll('rect')        .transition(t)        .attr("fill", "blue");        gt.selection()        .selectAll('circle')        .transition(t)        .attr("fill", "blue");       

transition.filter(filter)

gt.selection()            .filter(function(d,i){                console.log(d)            })            .transition(t)            .attr("fill", "blue");

transition.transition()

在当前的过渡集上再创建一个新的过渡,可以使用这个方法串联多个过渡:

d3.selectAll(".apple")  .transition() // First fade to green.    .style("fill", "green")  .transition() // Then red.    .style("fill", "red")  .transition() // Wait one second. Then brown, and remove.    .delay(1000)    .style("fill", "brown")    .remove();

d3.active(node[, name])

返回指定节点上名为name的活动的过渡。如果没有指定name则使用null。这个方法可以方便的创建链式过渡,比如创建一个循环disco过渡:

d3.selectAll("circle").transition()

.delay(function(d, i) { return i * 50; }).on("start", function repeat() {    d3.active(this)        .style("fill", "red")      .transition()        .style("fill", "green")      .transition()        .style("fill", "blue")      .transition()        .on("start", repeat);  });

transition.attr(name, value)

transition.attrTween(name[, factory])

如果factory非null,则根据插值factory从对name进行过渡。插值factory是一个返回interpolator的方法。在过渡开始时,对每个元素调用factory,并传递当前的元素绑定的数据d,i,this指向当前的DOM元素。返回的插值器会在过渡中的每一帧进行调用并传递当前的参数t. t的范围为[0,1],然后返回插值器计算后的值给name使用,插值器必须返回字符串类型。

如果factory为null,则移除name属性。如果没有指定factory则返回当前的插值器。

比如,对fill属性进行插值:

selection.attrTween("fill", function() {  return d3.interpolateRgb("red", "blue");});

或者从当前的fill值插值到blue:

selection.attrTween("fill", function() {  return d3.interpolateRgb(this.getAttribute("fill"), "blue");});

转载地址:http://rtisx.baihongyu.com/

你可能感兴趣的文章
JSP----九大内置对象
查看>>
The Z-Index CSS Property: A Comprehensive Look | Smashing Coding
查看>>
Java中HashMap详解
查看>>
Office版本差别引发的语法问题
查看>>
Apache——访问控制
查看>>
web前端(10)—— 浮动,清除默认样式
查看>>
ggplot2 aes函数map到data笔记
查看>>
3450: Tyvj1952 Easy
查看>>
delphi基本语法
查看>>
java中的Static class
查看>>
删除重复节点
查看>>
.net请求Webservice简单实现天气预报功能
查看>>
Loj #3056. 「HNOI2019」多边形
查看>>
【3】数据库的表设计和初始化
查看>>
Django rest framework的基本用法
查看>>
正则表达式匹配非需要匹配的字符串(标题自己都绕晕了)
查看>>
沙盒目录介绍
查看>>
260. Single Number III
查看>>
c#基础--字符串的处理_string类
查看>>
《C语言》-(流程控制:顺序结构、选择结构、循环结构)
查看>>