如何在不冻结的情况下创建永久动画
How do create perpetual animation without freezing?
我仍然是Javascript的新手。我尝试编写一个程序来使图像始终淡入淡出切换,所以我使用了 while 条件语句(与常量变量结合使用);在运行并冻结我的计算机(然后记住病毒基本上是无限操作)之后,我在这里搜索了一下,意识到我可能确实不应该使用无限循环。
(实际上我想要微光 - 这意味着从不透明度 0.9 到 0.6 到 0.9 等......)所以它与 fadeToggle 不同,但仍然存在相同的问题; 如何让它无限增加?(无需编写恶意代码。
这是我写的,供您参考:
<script>
$(document).ready(function(){
var always10 = 10;
while (always10 == 10) {
$('.pimg').fadeToggle(2600);
}
});
</script>
另外,我在另一个线程上发现while(true)
更适合无限循环。所以另一个问题:无限循环有时可以吗?
由于Javascript是异步的,因此没有sleep
方法。但相反,一个好主意是使用 setInterval
或 setTimeout
.
如果没有这些功能,您的循环将尽可能多地获取资源,并且可能导致冻结(取决于您的浏览器)。
只需使用 jQuery 动画(如 .fadeToggle)已经提供的回调:
function fadeToggleForever ($e) {
$e.fadeToggle({
duration: 2600,
// start another fadeToggle when this one completes
complete: function () { fadeToggleForever($e) }
});
}
// main code
fadeToggleForever($('.pimg'));
使用完整回调之所以有效,是因为jQuery动画在内部使用setTimeout
(或可能setInterval
),因此"产生"代码执行,以便浏览器可以继续对用户输入做出反应并更新显示。
相关文章:
- 创建动画路径
- 如何使用 jQuery 创建动画加载栏
- 使用XHTML中的嵌入式SVG从Javascript创建动画
- 从左到中间创建动画
- Python可以'NetworkX库创建动画?他们的主页上有一个精美的动画
- 是否更改页面滚动上的背景图像以创建动画?画布是否更高效
- 如何在单击按钮或链接时使用javascript或jquery动态制作或创建动画卡
- 使用css渐变和javascript创建动画
- 尝试在谷歌网页设计与自定义javascript创建动画动态字段
- 为什么我们不能使用for循环来创建动画?
- JavaScript:如何重新创建"动画你的名字"Codecademy的教训
- 使用jQuery和CSS重新创建动画
- 使用JQuery从PSD图层创建动画帧
- 如何在smartprogress中创建动画背景.使用js,css,html5
- 当用户悬停在画布上时创建动画
- 如何在响应式设计中为我的案例创建动画
- 在web应用程序中创建动画的基础是什么?
- 使用setInterval在多维数组中循环以创建动画
- 如何使用画布创建动画形状的不断循环
- 在输入文本上创建动画