gpt4 book ai didi

javascript - 更改或生成然后删除 css3 关键帧

转载 作者:太空宇宙 更新时间:2023-11-03 18:55:42 25 4
gpt4 key购买 nike

我目前正在使用 sencha 进行一个元素。在这个元素中,我有一个旋转的“wheelofffortune”轮子,它旋转到轮子的特定部分以获得您的奖金。

我之前用一些 javascript 做了这个,我在其中创建了间隔来切换 div 的 css 类,但效果不佳。

我现在想用 css3 动画来做,我有以下 css:

    @-webkit-keyframes rotater {
from {
-webkit-transform: rotate(0deg);
}
to {
-webkit-transform: rotate(3600deg);
}
}

.css3-rotaterFull {
-webkit-animation-name: rotater;
-webkit-animation-iteration-count: 1;
-webkit-animation-timing-function:ease-out;
-webkit-animation-duration: 15s;
}

但我需要将它旋转到某个可变的 Angular 。因此我需要能够设置

to {
-webkit-transform: rotate(3600deg);
}

在我将类添加到 div 之前分成可变的度数

关于如何执行此操作的任何想法?

最佳答案

使用 CSSOM:http://dev.w3.org/csswg/cssom/

function rotate(deg) {
var elem = document.getElementById('wheel');
var lastStyleSheet = document.styleSheets[document.styleSheets.length - 1];
var rule = '@-webkit-keyframes menuBreadcrumbAnimation {\
0% {\
-webkit-transform: rotate(0deg);\
} 100% {\
-webkit-transform: rotate(' + deg + 'deg);\
}';

function rotateAnimationEnd() {
lastStyleSheet.removeRule(lastStyleSheet.length);
elem.removeEventListener('webkitAnimationEnd', rotateAnimationEnd, false);
};

lastStyleSheet.insertRule(rule, lastStyleSheet.rules.length);
elem.addEventListener('webkitAnimationEnd', rotateAnimationEnd, false);
elem.classList.add('css3-rotaterFull');
};

一旦知道结束度是多少,将其传递给此函数。它将获取文档中的最后一个样式表,创建插入动态度的规则,然后将规则插入样式表并将适当的类添加到您的元素,以便它使用动画。

一旦动画结束,webkitAnimationEnd 监听器就会从样式表中删除规则,这样规则就不会连续建立,并且还会删除 webkitAnimationEnd 监听器本身,这样它就不会干扰下一次旋转。

关于javascript - 更改或生成然后删除 css3 关键帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13530825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com