是否可以从JavaScript更改CSS翻译距离值
Is it possible to change the CSS translate distance value from JavaScript?
我在css中有这段代码:
/*Animation Styles*/
.anim1 {
-webkit-animation: anim1 5s; /* Chrome, Safari, Opera */
animation: anim1 5s;
}
/* Chrome, Safari, Opera */
@-webkit-keyframes anim1 {
to {
background: yellow;
-webkit-transform: translateX(0px);
-ms-transform: translateX(0px);
transform: translateX(0px);
}
}
/* Standard syntax */
@keyframes anim1 {
to {
background: yellow;
-webkit-transform: translateX(0px);
-ms-transform: translateX(0px);
transform: translateX(0px);
}
}
是否可以通过javascript将0px
更改为其他内容?
这是我目前的尝试——参考这个SO答案:
// Setup animation classes
var setupAnimClasses = function(){
var caroWidth = caroWrapper.offsetWidth;
var caroHeight = caroWrapper.offsetHeight;
var style = document.createElement('style');
style.type = 'text/css';
for(var i in pageQueue){
var caroX = caroWidth * i;
style.innerHTML += "'
.caroAnimp"+i+" {'n'
-webkit-animation: animp"+i+" 0.6s; /* Chrome, Safari, Opera */'n'
animation: animp"+i+" 5s;'n'
}'n'
@-webkit-keyframes animp"+i+" {'n'
to {'n'
-webkit-transform:translateX("+caroX+"px);'n'
-ms-transform:translateX("+caroX+"px);'n'
transform:translateX("+caroX+"px);'n'
}'n'
@keyframes animp"+i+" {'n'
to {'n'
background: yellow;'n'
-webkit-transform:translateX("+caroX+"px);'n'
-ms-transform:translateX("+caroX+"px);'n'
transform:translateX("+caroX+"px);'n'
}'n'
}'n";
}
style.setAttribute('class','caroAnimStyles');
document.getElementsByTagName('head')[0].appendChild(style);
};
setupAnimClasses();
这运行良好,并产生:
.caroAnimp0 {
-webkit-animation: animp0 0.6s; /* Chrome, Safari, Opera */
animation: animp0 5s;
}
@-webkit-keyframes animp0 {
to {
-webkit-transform:translateX(0px);
-ms-transform:translateX(0px);
transform:translateX(0px);
}
@keyframes animp0 {
to {
background: yellow;
-webkit-transform:translateX(0px);
-ms-transform:translateX(0px);
transform:translateX(0px);
}
}
.caroAnimp1 {
-webkit-animation: animp1 0.6s; /* Chrome, Safari, Opera */
animation: animp1 5s;
}
@-webkit-keyframes animp1 {
to {
-webkit-transform:translateX(1434px);
-ms-transform:translateX(1434px);
transform:translateX(1434px);
}
@keyframes animp1 {
to {
background: yellow;
-webkit-transform:translateX(1434px);
-ms-transform:translateX(1434px);
transform:translateX(1434px);
}
}
.caroAnimp2 {
-webkit-animation: animp2 0.6s; /* Chrome, Safari, Opera */
animation: animp2 5s;
}
@-webkit-keyframes animp2 {
to {
-webkit-transform:translateX(2868px);
-ms-transform:translateX(2868px);
transform:translateX(2868px);
}
@keyframes animp2 {
to {
background: yellow;
-webkit-transform:translateX(2868px);
-ms-transform:translateX(2868px);
transform:translateX(2868px);
}
}
.caroAnimp3 {
-webkit-animation: animp3 0.6s; /* Chrome, Safari, Opera */
animation: animp3 5s;
}
@-webkit-keyframes animp3 {
to {
-webkit-transform:translateX(4302px);
-ms-transform:translateX(4302px);
transform:translateX(4302px);
}
@keyframes animp3 {
to {
background: yellow;
-webkit-transform:translateX(4302px);
-ms-transform:translateX(4302px);
transform:translateX(4302px);
}
}
.caroAnimp4 {
-webkit-animation: animp4 0.6s; /* Chrome, Safari, Opera */
animation: animp4 5s;
}
@-webkit-keyframes animp4 {
to {
-webkit-transform:translateX(5736px);
-ms-transform:translateX(5736px);
transform:translateX(5736px);
}
@keyframes animp4 {
to {
background: yellow;
-webkit-transform:translateX(5736px);
-ms-transform:translateX(5736px);
transform:translateX(5736px);
}
}
.caroAnimp5 {
-webkit-animation: animp5 0.6s; /* Chrome, Safari, Opera */
animation: animp5 5s;
}
@-webkit-keyframes animp5 {
to {
-webkit-transform:translateX(7170px);
-ms-transform:translateX(7170px);
transform:translateX(7170px);
}
@keyframes animp5 {
to {
background: yellow;
-webkit-transform:translateX(7170px);
-ms-transform:translateX(7170px);
transform:translateX(7170px);
}
}
但是,当使用此代码时:
$("tag")[0].setAttribute('class','caroAnimp1')
,什么也没发生。
不管我穿什么标签,什么都不会发生。只有当应用了一个类,并且在类更改时删除了设置时才会发生这种情况。
您可以使用Jquery来实现这一点:例如:
$(<myelement>).css('-webkit-transform', 'translateX(0px, 70px)');
jQuery的CSS属性
$('.anim1').css({"-webkit-transform":"translate(0px,70px)"});
或者您可以使用addClass方法。
定义CSS转换:
CSS
.animate{
-webkit-transform:translate(0px,70px);
}
jQuery
$('.anim1').addClass('.animate');
相关文章:
- CSS-如何定位内容数据标题
- 窗口大小html css
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 动画.CSS重播
- 有没有一种方法可以防止img get请求使用css或js发生
- 如何在javascript上使用flak-babel进行翻译
- CSS表格:从列平移到整个表格宽度
- CKEditor-我在editor.css中的风格是't
- 单击更改图标并通过javascript添加一个css类
- 将CSS应用于printWindow.print();在Javascript中
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- CSS 翻译不适用于数学函数
- 纯CSS网站翻译
- 是否可以从JavaScript更改CSS翻译距离值
- 添加<脚本>元素时,CSS 翻译过渡停止工作
- CSS从中心翻译回来
- CSS翻译了移动设备上大DOM的性能问题
- 如何禁用弹出式谷歌翻译HTML CSS
- jQuery CSS在不改变翻译的情况下设置子元素的比例
- 使用javascript激活css动画/翻译