首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >元素样式与计算样式的值不同

元素样式与计算样式的值不同
EN

Stack Overflow用户
提问于 2012-12-18 19:02:51
回答 2查看 1.2K关注 0票数 1

我遇到了一个令人费解的问题,一个属性的计算样式与元素的样式具有不同的值。

先说几句话来描述我的处境

我正在动画元素的背景颜色属性,当动画结束时,我检索计算出的bgcolor值并将其应用于元素的样式。这个很好用

但是,如果我现在尝试更改bgcolor,则什么也不会发生,尽管确实在元素上设置了值,正如开发人员工具所报告的那样。

此时,如果您(通过浏览器的开发人员工具)在样式和计算样式之间切换,则2报告的内容之间会有差异,当然,计算样式优先。

我已经在fiddle上创建了一个测试脚本,它描述了情景http://jsfiddle.net/d2S3d/14/

也附上一些示例css导致堆栈溢出不能让我提交没有它的帖子

.animate{动画名称: bg_kf;动画时长: 5s;动画定时函数:线性;动画延迟: 0s;动画迭代次数: 1;动画填充模式:向前;动画方向:正常;

代码语言:javascript
复制
    -webkit-animation-name: bg_kf;
    -webkit-animation-duration: 5s;
    -webkit-animation-timing-function: linear;
    -webkit-animation-delay: 0s;
    -webkit-animation-iteration-count: 1;
    -webkit-animation-fill-mode: forwards;
    -webkit-animation-direction: normal;

    -moz-animation-name: bg_kf;
    -moz-animation-duration: 5s;
    -moz-animation-timing-function: linear;
    -moz-animation-delay: 0s;
    -moz-animation-iteration-count: 1;
    -moz-animation-fill-mode: forwards;
    -moz-animation-direction: normal;

    -o-animation-name: bg_kf;
    -o-animation-duration: 5s;
    -o-animation-timing-function: linear;
    -o-animation-delay: 0s;
    -o-animation-iteration-count: 1;
    -o-animation-fill-mode: forwards;
    -o-animation-direction: normal;
}

@keyframes bg_kf {
    from {background-color:#FFFFFF}
    to {background-color:red}
}

@-moz-keyframes bg_kf {
    from {background-color:#FFFFFF}
    to {background-color:red}
}

@-webkit-keyframes bg_kf {
    from {background-color:#FFFFFF}
    to {background-color:rgba(255, 140, 74, 0.16)}
}

@-o-keyframes bg_kf {
    from {background-color:#FFFFFF}
    to {background-color:rgba(255, 140, 74, 0.16)}
}

感谢任何帮助的问候

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-18 19:11:37

这就是为什么切换内联样式似乎没有任何效果。

如果您在应用内联样式后立即删除.animate类,则一切将再次恢复正常:

代码语言:javascript
复制
$("#sample").bind('animationend webkitAnimationEnd MSAnimationEnd oAnimationEnd', function(){
    var computedBg = $(this).css('background-color');
    $(this).css('background-color', computedBg);
    $(this).removeClass('animate');
});

这是一个演示(尝试在动画完成后单击按钮):http://jsfiddle.net/vcfDj/

票数 2
EN

Stack Overflow用户

发布于 2013-06-02 17:40:47

你已经设置了动画填充模式“前进”。这样做的效果是将动画CSS属性保留为动画结束时的值(与其他样式设置无关)。将其设置为"none“将解决您的问题!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13931541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档