Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaScript动态生成@-webkit关键帧CSS?_Javascript_Jquery_Html_Css - Fatal编程技术网

使用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>