Javascript 使用d3从一侧到另一侧的水平淡入过渡?
我知道如何使用“不透明度”(opacity)属性进行正常的淡入淡入过渡,但如何使过渡从元素的一端开始,并在水平方向上逐渐完成 大概是这样的: 我试图为一些文本这样做:Javascript 使用d3从一侧到另一侧的水平淡入过渡?,javascript,d3.js,Javascript,D3.js,我知道如何使用“不透明度”(opacity)属性进行正常的淡入淡入过渡,但如何使过渡从元素的一端开始,并在水平方向上逐渐完成 大概是这样的: 我试图为一些文本这样做: text = svg.selectAll(".myText") .data(myData) .enter() .append("text") .attr("class", "myText") .attr("text-anchor",
text = svg.selectAll(".myText")
.data(myData)
.enter()
.append("text")
.attr("class", "myText")
.attr("text-anchor", "start")
.attr("fill-opacity", 0)
.text(function (d)
{
return d.message
});
text.transition()
.delay(500)
.duration(1000)
.attr("fill-opacity", 1)
很酷的问题。这种疯狂怎么样: var str=这是一个长字符串。, i=0; var svg=d3.selectbody .appendsvg .宽度,500 .身高300; var text=svg.appendtext .样式填充,黑色 .STYLE字体大小,30磅 .stylefont系列,arial .attransform,translate10,50; fadeLeftToRight; 功能fadeLeftToRight{ i++; 如果i>=str.length返回; var char=str.substringi-1,i; 文本 .附录span .styleopacity,0 .textchar 过渡 .延迟100 .durationchar==?0:500 .不透明度,1 .eachstart,已运行{ fadeLeftToRight; } } 纯CSS答案 您可以在此处看到如何使用纯CSS执行此操作: D3方法 下面是链接答案中给出的相同方法,仅将其应用于D3 要点是在文本上方放置一个框,并使用过渡将框宽度从完全覆盖文本修改为完全显示文本 为防止长方体边缘可见且过于粗糙,将应用渐变 为了确保框很好地覆盖文本,覆盖矩形使用函数getBBox使用文本边界框中的参数 变量高度=25, 宽度=100; d3.选择'div'。附加'svg' .attr'width','100%' .attr'viewBox',0+宽度+高度 .attr'style','边框:实心1px绿色' .附加“g” .attr'transform','translate'+宽度/2+,'+高度/2+ .attr'id','main'; var text=d3。选择“main”。追加“text” .attr'class','myText' .attr'text-anchor','middle' .attr'alignment-baseline','middle' .发短信“我的留言”; bbox=文本[0][0]; var gradient=d3。选择“svg”。添加defs .appendlinearGradient .属性,梯度 .X1,0% .x2,0% .方法,pad; 梯度。追加停止 .补偿,0% .自动停止颜色,fff .不透明度,1; 梯度。追加停止 .补偿,100% .自动停止颜色,fff .attrstop不透明度,0; fadeBox=d3。选择“主”。附加“rect” .attr'x',bbox.x .attr'y',bbox.y .attr'width',bbox.width .attr'height',bbox.height .stylefill,URLFILL梯度; fadeBox.transition .500 .期限2000 .attr'width',0 .attr'x',bbox.width 渐变过渡 .延迟'500' .期限'2000' .attr'x1','100%'
回答得好。我必须在我的游戏上升级以获得更好的淡入效果。嘿,谢谢你。我女朋友说这很糟糕,你的更好。哈,哈,如果投票结果和被接受的答案是任何迹象,你女朋友错了。