Javascript 代码不循环

标签 javascript css animation

大家好我只使用 javascript 和 css 技术制作 Sprite 动画,但它不会做任何循环。当它到达图像的末尾时,它已经变成了空白图像。

这是我的代码:

<html>  
<head>
    <style type="text/css">         
        .container 
        { 
            width: 512px; 
            height: 512px; 
            overflow: hidden; 
        }    
    </style>

    <script type='text/javascript'>    
        document.onreadystatechange = function () 
        {
            if (document.readyState == "complete") 
            {
                setInterval(next, 100);
            }
            else
            {
                return false;
            }
        }

        var frame = 1;

        function next()
        {
            var left = 512 * frame;    
            var top = 0;
            var elementStyle = document.getElementById('image').style;

            elementStyle.position = "relative";
            elementStyle.top = '-'+top+'px';
            elementStyle.left = '-'+left+'px';

            frame++;
        }
    </script>    
</head>    
<body>    
    <div class="container">
        <img id="image" src="flame_sprite.png" />
    </div>
</body>
</html>

这是我用来测试代码的图片:

http://www.thecave.info/wp-content/uploads/2014/08/flame_sprite.png

如果有人可以帮助我修复它,请向我解释我的代码有什么问题,我非常感谢。

最佳答案

你的图片有 6 帧,你必须在它上面循环,添加 if(frame == 6 ) frame = 0; 来重新启动你的动画。

function next()
{
    if(frame == 6 ) frame = 0;

    var left = 512 * frame;

    var top = 0;

    var elementStyle = document.getElementById('image').style;

    elementStyle.position = "relative";

    elementStyle.top = '-'+top+'px';

    elementStyle.left = '-'+left+'px';

    frame++;

 }

显示结果:http://jsfiddle.net/59yhuk8L/

关于Javascript 代码不循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27355315/

相关文章:

javascript - 如何在next js中使用组件级sass文件

CSS子菜单定位

swift - SwiftUI 中的动画状态变化

javascript - 尝试获取 jstree 中 Change_state 上已检查项目的列表

javascript - Angular .js : How to bind "change" event to service

jquery - 悬停时,更改顶部 pf 元素后触发 mouseleave()

html - 带有自签名 SSL 证书服务器的 HTTPS 和在 HTML 文件中嵌入 CSS

ios - 如果调用 layoutIfNeeded(),UIView 约束将不会动画

ios - 动画导航栏标题文本更改

javascript:执行 appendChild(node) 然后尝试读取 node.clientWidth 失败