我尝试使用jquery将<style type="text/css"></style>
添加到head。
我试过这个
$("<style type='text/css'></style>").appendTo("head");
以前,我有这种类型的
<style type="text/css">
img{
-moz-animation:.6s rotateRight infinite linear;
-webkit-animation:.6s rotateRight infinite linear;
}
@-moz-keyframes rotateRight{
0%{ -moz-transform:rotate(0deg); -moz-transform-origin:50% 50%; }
100%{ -moz-transform:rotate(360deg); }
}
@-webkit-keyframes rotateRight{
0%{ -webkit-transform:rotate(0deg); -webkit-transform-origin:50% 50%; }
100%{ -webkit-transform:rotate(360deg); }
}
</style>
当我用这样的jquery尝试这个时,上面的风格起作用了:
$("<style type='text/css'>img{
-moz-animation:.6s rotateRight infinite linear;
-webkit-animation:.6s rotateRight infinite linear;
}
@-moz-keyframes rotateRight{
0%{ -moz-transform:rotate(0deg); -moz-transform-origin:50% 50%; }
100%{ -moz-transform:rotate(360deg); }
}
@-webkit-keyframes rotateRight{
0%{ -webkit-transform:rotate(0deg); -webkit-transform-origin:50% 50%; }
100%{ -webkit-transform:rotate(360deg); }
}</style>").appendTo("head");
但我在编辑器中遇到错误。 这是照片 我想我搞砸了一些东西:( http://jsfiddle.net/jSvUE/
任何建议都会很棒 谢谢, 维基
答案 0 :(得分:4)
尝试
$("<style type='text/css'>img{ \
-moz-animation:.6s rotateRight infinite linear; \
-webkit-animation:.6s rotateRight infinite linear; \
} \
@-moz-keyframes rotateRight{ \
0%{ -moz-transform:rotate(0deg); -moz-transform-origin:50% 50%; } \
100%{ -moz-transform:rotate(360deg); } \
} \
@-webkit-keyframes rotateRight{ \
0%{ -webkit-transform:rotate(0deg); -webkit-transform-origin:50% 50%; } \
100%{ -webkit-transform:rotate(360deg); } \
}</style>").appendTo("head");
工作示例:http://jsfiddle.net/jSvUE/2/
真的很讨厌,但对于一个快速解决问题的解决方案,这样做会有效。这里的想法是你逃避新行。然而,更好的方法是将img
作为一个类,并使用http://api.jquery.com/toggleClass/来实现切换动画。
2016年更新
在2016年,ES6得到了广泛的支持,上述黑客可以被这个仍然可怕的blob取代:
$(`<style type="text/css">
img {
animation: 600ms rotateRight infinite linear;
}
@keyframes rotateRight {
0% { transform: rotate(0deg); transform-origin: 50% 50% }
100% { transform: rotate(360deg) }
}
</style>`).appendTo("head");
答案 1 :(得分:1)
我不知道为什么你这样做,但你的问题是你不能在javascript中打破行尝试这个
$("<style type='text/css'>img{-moz-animation:.6s rotateRight infinite linear;-webkit-animation:.6s rotateRight infinite linear; }"+
"@-moz-keyframes rotateRight{0%{ -moz-transform:rotate(0deg); -moz-transform-origin:50% 50%; }100%{ -moz-transform:rotate(360deg); }}"+
"@-webkit-keyframes rotateRight{ 0%{ -webkit-transform:rotate(0deg); -webkit-transform-origin:50% 50%; } 100%{ -webkit-transform:rotate(360deg); }}</style>").appendTo("head");
一个例子是here,如果它是一个字符串,则将所有内容粘贴在一行上。或者如果你想保持良好的格式,请用+
打破这一行答案 2 :(得分:1)
问题在于JS中的换行符。您可以将样式存储在变量中,然后将其附加到头部,以便样式可重复使用:
var $styles = '<style type="text/css">img{-moz-animation:.6s rotateRight infinite linear;-webkit-animation:.6s rotateRight infinite linear;}@-moz-keyframes rotateRight{0%{ -moz-transform:rotate(0deg); -moz-transform-origin:50% 50%; }100%{ -moz-transform:rotate(360deg); }}@-webkit-keyframes rotateRight{0%{ -webkit-transform:rotate(0deg); -webkit-transform-origin:50% 50%; }100%{ -webkit-transform:rotate(360deg); }}</style>';
$("head").append($styles);
答案 3 :(得分:1)
唯一有效的方法是字符串连接:
$("<style type='text/css'>img{ " +
" -moz-animation:.6s rotateRight infinite linear; " +
" -webkit-animation:.6s rotateRight infinite linear; " +
"}" + ...
).appendTo("head");
请注意不建议这样做:
$("<style type='text/css'>img{ \
-moz-animation:.6s rotateRight infinite linear; \
-webkit-animation:.6s rotateRight infinite linear; \
} \
...
无法安全地剥离每行开头的空格 在编译时;斜线后的空格将导致棘手 错误;虽然大多数脚本引擎支持这一点,但它不属于 的ECMAScript。