【发布时间】:2018-08-25 05:20:20
【问题描述】:
我一直在将一些 CSS 动画实现为命名类,因此我可以轻松地为元素添加/删除任何关联的动画,使其“可用于”后续或重复动画。
我正在尝试使用CSS 变量,它目前正在让我陷入循环。我试图让用户以 90 度的增量旋转活动图像。在下面的代码示例中,我只显示了积极的 90 按钮单击事件。
*.scss
:root {
--rotation-degrees: 90;
}
@keyframes rotate {
100% {
transform: rotate(var(--rotation-degrees)+'deg');
}
}
.animation-rotate {
--rotation-degrees: 90;
// NOTE: I suspect the variable does not need to be supplied here, removing does
// not fix the issue, at least in isolation
animation: rotate(var(--rotation-degrees)) 0.2s forwards;
}
*.js
let degrees = 0;
function rotate(degrees_increment) {
degrees += degrees_increment;
// The use of document.documentElement.style.setProperty is something I've seen
// used in many of the articles I've read as a means to "get to" the css variable,
// so I'm simply blindly copying it's use here
document.documentElement.style.setProperty('--rotation-degrees', degrees +'deg');
$('#main-image-slider img').addClass('animation-rotate');
}
$('#rotate-right-button').on('click', function(event) {
event.preventDefault();
rotate(90);
});
提前感谢您提供的任何见解和帮助!
【问题讨论】:
标签: javascript jquery css css-animations css-variables