为什么在d3中添加元素后,.duration会充当.delay
Why would .duration act as .delay after appending an element in d3?
我一直在d3中构建一个简单的轻量级进度条小部件,当我试图为它设置过渡时,遇到了一些奇怪的事情:
http://codepen.io/emoody/pen/oJFGI?编辑= 101
所讨论的块是:
enter //the name of my d3 function
.append("div")
.attr("class", "progress")
.style("width",0)
.transition()
.duration(1500)
.style("width", function(d) { return x(d) * (100/maxRange) + "%"; });
它不是立即开始过渡,然后在1500毫秒内动画到全宽度,而是等待1500毫秒,然后在默认持续时间内动画。(你可以看到链接笔的行为)
我和一个同事的猜测是,它实际上是在过渡其他一些元素,没有实际的变化,然后是这个,导致延迟的出现,但我不明白为什么会这样。
问题是你在CSS中放置了一个干扰的过渡。特别是
transition: all 500ms;
正在改变你试图在D3中设置的过渡。
删除这个CSS可以修复这个问题。完整的演示在这里。
相关文章:
- 什么是“;右“;使用addClass/delay/removeClass的方法
- .delay() 不适用于 slideUp()
- 如何暂停.delay()方法
- 使用下划线_.delay,我如何停止未来的执行并提供用户状态
- delay()函数不能与jquery中的addClass()函数一起使用
- JQuery delay()中断fadeIn序列
- _.delay()-终止计时器
- delay()不会'第二次工作jquery
- jQuery Bounce: Bounce, delay, loop
- 为什么 .delay() 不起作用
- Kendo UI 网格可编辑手动 dataItem.set() slow/delay
- 带有 .delay 的进度条
- jQuery .delay() and .fadeIn() to cart
- keyup(function()) ajax request delay - jQuery
- jQuery FadeIn Delay Issue
- Jquery setTimeOut Delay
- jQuery slide delay for Joomla yt megamenu plugin
- 如何使用 delay() 清除事件调用集
- ng-change delay, angularjs
- 为什么在d3中添加元素后,.duration会充当.delay