使用JavaScript动态生成@-webkit关键帧CSS?
我能生产使用JavaScript动态生成@-webkit关键帧CSS?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我能生产 -webkit-animation-name:mymove; 动态地 object.style.animationName="mymove" 但有没有可能产生类似的结果 @keyframes mymove { from {left:0px;} to {left:200px;} } 动态地使用JS?好吧,如果我理解正确的话,这就可以了 它使用预定义的转换属性集,并通过jquery动态更改值 定义这些动画的语法如下所示 transition-property: prop1, pro
-webkit-animation-name:mymove;
动态地
object.style.animationName="mymove"
但有没有可能产生类似的结果
@keyframes mymove
{
from {left:0px;}
to {left:200px;}
}
动态地使用JS?好吧,如果我理解正确的话,这就可以了 它使用预定义的转换属性集,并通过jquery动态更改值 定义这些动画的语法如下所示
transition-property: prop1, prop2, prop3;
transition-duration: timing1, timing2, timing3;
transition-timing-function: ease1, ease2, ease3;
通过这样做,您可以使用@keyframes实现几乎所有的功能(不完全是所有功能,但肯定是相当多的功能),它恰好被内置到元素样式中。从这里开始,您可以通过jquery继续更改任何您想要的内容。如果是移动量,你可以做一些像
$("#myElem").css("left", "50px");
css3转换将处理其余的问题。如果你想改变放松类型,你也可以用
$("#myElem").css("transition-timing-function", "linear");
我知道这并不完全是您想要的,但它很可能会奏效。是的,我使用Jquery库,然后像这样应用: 假设在这种情况下,我希望左值是来自属性class value=“push”的div的动态值
墙
//--JS--
变量关键帧=
{
init:function(){
如果(!KeyFrame.check)
{
//到左边去
var pushLeft=$('.push').position().left;
//设置样式并附加到头部
var css=$('@keyframes mymove{from{left:0px;}to{left:'+pushLeft+'px;}}')。appendTo('head');//确保不使用回车符返回css内联语句,否则它将被视为非法错误
//所以你不会一直在头上附加样式
KeyFrame.check=true;
}
}
}
KeyFrame.init();
考虑一下如何访问样式表
document.styleSheets[0].insertRule(animationRule)
要做好这件事肯定会很复杂,所以简单地说,您希望保留一个链接,并修改与每个对象或其他对象相关的规则,以避免混乱。或者你可以试着运行一种带有时间戳的垃圾收集方式,或者计算出什么时候可以删除旧的垃圾
通过快速查找我找到的其他链接。。。
删除规则
insertRule(addRule在前面,因此更可靠)
我刚才还提到了一些可能有用的东西
实际上,这看起来是一个更好的更清晰的理解,或者至少是另一种方式
您似乎已经了解了css3关键帧。我建议生成关键帧,您还可以将事件和回调附加到动画。是的,在编写javascript代码时,您可以使用setAttribute()函数而不是style(),以便可以包含多种类型的样式。只需插入动画名称、动画持续时间、动画计时功能或任何其他类型即可
<!DOCTYPE html>
<html>
<head>
<title> Welcome </title>
<meta charset = "utf-8">
<style>
@keyframes appear-in {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
#landing-page {
width: 100%;
height: 1000px;
}
</style>
<script>
window.addEventListener('load', function(){setTimeout(renderService, 1000)});
function renderService(){
var server = document.getElementById('Services');
server.setAttribute("style", "animation-name: appear-in; animation-duration: 5s; animation-timing-function: ease-in; background-image: url('https://wallpaperaccess.com/full/949819.jpg'); background-size: 80% 100%; background-position: center");
}
</script>
</head>
<body>
<div id = "landing-page">
</div>
</body>
</html>
欢迎
@关键帧显示在中{
从{
不透明度:0;
}
到{
不透明度:1;
}
}
#登录页{
宽度:100%;
高度:1000px;
}
addEventListener('load',function(){setTimeout(renderService,1000)});
函数renderService(){
var server=document.getElementById('Services');
setAttribute(“样式”,“动画名称:出现在中”;动画持续时间:5s;动画计时功能:轻松进入;背景图像:url('https://wallpaperaccess.com/full/949819.jpg“);背景大小:80%100%;背景位置:中间”);
}
您希望在定义动画后(在另一个元素上)能够引用动画,还是仅将动画应用到当前元素并退出?请立即处理,抱歉延迟!谢谢,但我对生成@keyframes partAh特别感兴趣好吧,也许这个答案能帮上忙?这篇文章是用普通的javascript或vanillaJS发布的。我使用事件监听器在特定的时间范围内呈现它,使它出现在中,而不仅仅是在没有任何控制的情况下出现。
<!DOCTYPE html>
<html>
<head>
<title> Welcome </title>
<meta charset = "utf-8">
<style>
@keyframes appear-in {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
#landing-page {
width: 100%;
height: 1000px;
}
</style>
<script>
window.addEventListener('load', function(){setTimeout(renderService, 1000)});
function renderService(){
var server = document.getElementById('Services');
server.setAttribute("style", "animation-name: appear-in; animation-duration: 5s; animation-timing-function: ease-in; background-image: url('https://wallpaperaccess.com/full/949819.jpg'); background-size: 80% 100%; background-position: center");
}
</script>
</head>
<body>
<div id = "landing-page">
</div>
</body>
</html>