【发布时间】:2015-03-20 16:07:14
【问题描述】:
假设我有一个持续运行的动画,而不是 css、javascript,或者在这种情况下为了简单起见是一个 .gif 文件,然后我 附加到 DOM 像 youtube iframe 这样的“重”元素和持续的动画会缓慢一秒钟。
是否有任何直接或变通的方法来实现这种 DOM 更改而不交错动画?
在下面的示例中,请注意,如果您将 iframe 更改为另一个 gif,甚至是一个具有相当简单网站的 iframe,动画运行时不会出现交错或迟缓的情况。
演示/示例:http://codepen.io/anon/pen/xbdewR
stackoverflow 发出警告,提示 codepen.io 的链接必须附有代码,这是我第一次发帖,所以我希望这是它所要求的:
$('.button').on('click', function(e) {
// Sluggish
$('.video-container').html('<iframe width="560" height="315" src="//www.youtube.com/embed/FprQEGc3Za4" frameborder="0" allowfullscreen></iframe>');
// Not Sluggish
//$('.video-container').html('<img src="http://media2.giphy.com/media/e7FOBuKCDtwWI/giphy.gif"/>');
// Not Sluggish
//$('.video-container').html('<iframe width="560" height="315" src="http://html5doctor.com/" frameborder="0" allowfullscreen></iframe>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img src="http://media.giphy.com/media/lRBEntSxN87WE/giphy.gif" alt="" />
<div class="video-container">
<a class="button" href='#'>wait for the gif to load completely and press me</a>
</div>
【问题讨论】:
-
每个tab只有一个主线程,dom重新布局和gif动画都使用它。某些视频可能是硬件加速的,但加载它可能总是会减慢渲染速度。
标签: javascript jquery dom iframe youtube