我正在创建一个DOM元素(一个div),将其添加到DOM,然后在javascript中快速点击即可更改其宽度。从理论上讲,这应该触发CSS3转换,但是结果是从A到B直接转换,而两者之间没有转换。
如果我通过单独的测试点击事件来更改宽度,则一切都会按预期进行。
这是我的JS和CSS:
JS(jQuery):
var div = $('<div />').addClass('trans').css('width', '20px');
$('#container').append(div);
div.css('width', '200px');
CSS(目前仅使用mozilla):
.trans {
-moz-transition-property: all;
-moz-transition-duration: 5s;
height: 20px;
background-color: cyan;
}
我是在这里搞砸了吗,还是“一键通”不应该做的事情?
非常感谢所有帮助。
一种不依赖setTimeout的更干净的方法是在设置之前读取有问题的css属性:
var div = $('<div />').addClass('trans');
$('#container').append(div);
div.css('width');//add this line
div.css('width', '200px');
正如Lucero在下面的评论中所解释的那样,这样做必须强制浏览器计算实际值,而不是“自动”,“继承”或类似值。没有实际值,浏览器将不会知道新值是前一个值的更改。
问题内容: 正如这个问题所观察到的,新添加的元素上的CSS过渡立即被忽略了-过渡的结束状态立即被呈现。 例如,给定此CSS(此处省略前缀): 此元素的不透明度将立即设置为1: 我已经看到了触发过渡以获得预期行为的几种方法: 相同的方法适用于原始JS DOM操作-这不是jQuery特定的行为。 编辑-我正在使用Chrome 35。 为什么忽略附加元素上的即时CSS动画? 这些方法如何以及为什么起作用
问题内容: 我在页面加载时触发了CSS 属性beeing 的问题。 问题是,当我将a 应用于元素时(例如:),然后在页面首次加载时,我的元素从黑色闪烁到它自己分配的颜色。 假设我有以下代码: CSS HTML 在页面加载,我会褪色从到。 我不想将颜色转换应用于伪类,因为那样不会将转换 应用于onMouseLeave 。 我真的很讨厌在网页上闪烁文本。到目前为止,除非我确实需要过渡,否则我一直在避免
主要内容:1. transition-property,2. transition-duration,3. transition-timing-function,4. transition-delay,5. transition通常当 CSS 的属性值更改后,浏览器会立即更新相应的样式,例如当鼠标悬停在元素上时,通过 :hover 选择器定义的样式会立即应用在元素上。在 CSS3 中加入了一项过渡功能,通过该功能您可以将元素从一种样式在指定时间内平滑的过渡到另一种样式,类似于简单的动画,但无需借
本文向大家介绍CSS过渡速记,包括了CSS过渡速记的使用技巧和注意事项,需要的朋友参考一下 示例 的CSS 的HTML 此示例将在div悬停时更改背景颜色,背景颜色更改将持续1秒钟。
本文向大家介绍CSS 过渡(纵向),包括了CSS 过渡(纵向)的使用技巧和注意事项,需要的朋友参考一下 示例 的CSS 的HTML transition-property:指定过渡效果所针对的CSS属性。在这种情况下,当鼠标悬停时,div会在水平和垂直方向上扩展。 transition-duration:指定过渡完成所需的时间。在上面的示例中,高度和宽度过渡将分别花费1秒和500毫秒。 trans
问题内容: 因此,我了解了如何同时执行CSS3过渡和动画。我用谷歌搜索的不清楚是什么时候使用它。 例如,如果我想使球弹跳,很明显,动画是必经之路。我可以提供关键帧,而浏览器将做中间帧,并且我将获得一个不错的动画。 然而,在某些情况下,无论哪种方式都可以达到上述效果。一个简单而常见的示例是实现Facebook风格的滑动抽屉菜单: 可以通过以下过渡来实现此效果: 或者,通过类似这样的动画: 使用HTM