【问题标题】:Javascript to change keyframe values in external css sheet (No Inline Style Changes!)用于更改外部 css 表中关键帧值的 Javascript(无内联样式更改!)
【发布时间】:2015-02-05 00:56:09
【问题描述】:

我要做的是根据我得到的变量,将关键帧中的 100% 旋转值更改为新的计算值。我使用 Javascript 来执行此操作没有问题,但我希望它在外部 CSS 中完成,而不是内联,一旦更改,我需要重新启动动画。这可能吗?如果是这样,怎么做? (注意所有当前都通过按钮单击完成)这不会被保存,仅用于使用新位置更新图形。

.arrow {
    -webkit-animation: rotate 3s linear 0 1;
    animation: rotate 3s linear 0 1;

    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);

    -webkit-animation-play-state: paused;
    animation-play-state: paused;

    visibility: visible !important; 
}

@-webkit-keyframes rotate {
    0% {
        -webkit-transform: rotate(0deg);
    }   
    100% {
        -webkit-transform: rotate(360deg);
    }   
}

@keyframes rotate {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }       
}

任何帮助将不胜感激!我一直在努力寻找可以使用大约一周的东西。

【问题讨论】:

  • Javascript 不能更改外部文件,它可以访问外部样式表,但不能保存它们,这将是更改外部样式表中样式的唯一原因

标签: javascript css rotation css-animations


【解决方案1】:

可以在加载的样式表上更改关键帧。在这里你有一个stack overflow answer from 2011。这是link to a recent blog post about it

【讨论】:

    【解决方案2】:

    因此,正如 adeneo 所说,不可能让 javascript 更改外部样式表。

    您可以做的事情是制作 2 个 css 类并使用 javascript 来更改类。这样您就不会使用内联样式。
    此外,由于您正在更改课程,因此动画将从头开始 - 如您所愿。

    【讨论】:

    • 创建新类的主要问题是,我需要它从当前位置开始动画,然后移动到计算好的角度。
    • 我明白了,抱歉,我以为你想完全重置动画。如果你想要一个连续的动画,建议你使用 javascript 动画或 jquery 的 animate 函数 - css 动画相当有限,因为 css 没有良好的事件处理
    猜你喜欢
    • 2016-11-19
    • 2022-06-28
    • 2018-07-19
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    相关资源
    最近更新 更多