gpt4 book ai didi

javascript - JavaScript + CSS3 动画的内存问题。如何提高?

转载 作者:行者123 更新时间:2023-12-02 19:38:04 24 4
gpt4 key购买 nike

我创建了一个动画循环。一旦一个动画完成,它就会触发下一个动画,依此类推。似乎当我保持浏览器打开 1-2 分钟时,它开始变慢并占用越来越多的资源,直到我的浏览器响应缓慢并且动画几乎不再运行。我怎样才能防止这种情况发生呢?这是我的代码:

<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
html, body {
margin: 0;
}
.shared {
position: absolute;
opacity: 0;
}
img#article-02 {
top: 0;
left: 0;
width: 205px;
height: 205px;
}
img#article-03 {
top: 227px;
left: 0;
width: 205px;
height: 205px;
}
img#article-04 {
top: 318px;
left: 227px;
width: 431px;
height: 114px;
}
@-webkit-keyframes article2 {
0% {opacity: 0;}
10% {opacity: 1;}
60% {opacity: 1;}
70% {opacity: 0;}
100% {opacity: 0;}
}
@-webkit-keyframes article3 {
0% {opacity: 0;}
20% {opacity: 1;}
70% {opacity: 1;}
80% {opacity: 0;}
100% {opacity: 0;}
}
@-webkit-keyframes article4 {
0% {opacity: 0;}
30% {opacity: 1;}
80% {opacity: 1;}
90% {opacity: 0;}
100% {opacity: 0;}
}
</style>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
animArticle02();
});

function animArticle02() {
$("#article-02").css('-webkit-animation', 'article2 2s linear');
var $element = $("#article-02").bind("webkitAnimationEnd", function(){
this.style.webkitAnimationName = "";
animArticle03();
});
}
function animArticle03() {
$("#article-03").css('-webkit-animation', 'article3 2s linear');
var $element = $("#article-03").bind("webkitAnimationEnd", function(){
this.style.webkitAnimationName = "";
animArticle04();
});
}
function animArticle04() {
$("#article-04").css('-webkit-animation', 'article4 2s linear');
var $element = $("#article-04").bind("webkitAnimationEnd", function(){
this.style.webkitAnimationName = "";
animArticle02();
});
}
</script>
</head>
<body>
<img id="article-02" class="shared" src="article-02.png" alt="" />
<img id="article-03" class="shared" src="article-03.png" alt="" />
<img id="article-04" class="shared" src="article-04.png" alt="" />
</body>
</html>

最佳答案

这可能与重复绑定(bind)和 jQuery 调用有关。试试这个脚本:

//shorthand .ready()
$(function() {

//cache elements
var ar2 = $("#article-02"),
ar3 = $("#article-03"),
ar4 = $("#article-04");

//bind once
ar2.bind("webkitAnimationEnd", function() {
this.style.webkitAnimationName = "";
animArticle03();
});
ar3.bind("webkitAnimationEnd", function() {
this.style.webkitAnimationName = "";
animArticle04();
});
ar4.bind("webkitAnimationEnd", function() {
this.style.webkitAnimationName = "";
animArticle02();
});

//animate
function animArticle02() {
ar2.css('-webkit-animation', 'article2 2s linear');
}

function animArticle03() {
ar3.css('-webkit-animation', 'article3 2s linear');
}

function animArticle04() {
ar4.css('-webkit-animation', 'article4 2s linear');
}

animArticle02();
});​

关于javascript - JavaScript + CSS3 动画的内存问题。如何提高?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10718091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com