javascript - 0.08秒超时内显示不同图片

标签 javascript

我有这段代码,应该在 0.08333 秒的间隔内显示 24 个图像。但是它只显示最后一张图像。 HTML:

<!DOCTYPE html><html><head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script><script type="text/javascript" src="script.js"></script><title>page</title></head><body>
<img src="untitled.0001.jpg">
</body></html>

在 JavaScript 中:

$(document).ready(function () {
$(document).keydown(function(e) {
    switch(e.which) {
        case 39: // right
            for (var i = 1; i != 24; i++) {
                setTimeout(function(){
                        $( "img" ).replaceWith( "<img src='image.000"+ i +".jpg'>");
                },83); 
            }
            break;
        default: return; // exit this handler for other keys
    }
    e.preventDefault(); // prevent the default action (scroll / move caret)
});
});

如何让它在 0.08333 秒的超时时间内显示所有图像

更新:我尝试解决它并想出了这个:

$(document).ready(function () {
$(document).keydown(function(e) {
    switch(e.which) {
        case 39: // right
        var count = 1;
            while (count!=24) {
                var waiting = 83 * count;
                setTimeout(function() {$( "img" ).replaceWith( "<img src='avatar/walk/HumanWalk.000"+ count +".jpg'>");}, waiting);
                count+=1;
            }
            break;
        default: return; // exit this handler for other keys
    }
    e.preventDefault(); // prevent the default action (scroll / move caret)
});
});

为什么它仍然不起作用并且只显示最后一张图片?

最佳答案

对于这种情况使用setInterval:

$(document).keydown(function(e) {
  switch (e.which) {
    case 39:
      var c = 0;
      var interval = setInterval(function() {
        // set the source of your image to
        // 'image.000' + (c++ -1) + '.jpg'
      }, 83);
      if (c === 24) clearInterval(interval);
  }
});

关于javascript - 0.08秒超时内显示不同图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38291624/

相关文章:

javascript - 扩展脚本 InDesign CS6 : Print using a print preset

javascript - 使用 Javascript 注入(inject) SVG 的后备

javascript - 无法在 React Native 中使用新的 Textinput 数据更新 Array 对象

javascript - 如何监视默认导出函数

javascript - knockout 分页绑定(bind)

javascript - 删除对象中键的每个实例的优雅方法?

javascript - jQuery click 进行多次 AJAX 调用

javascript - 将 div 设为宽矩形,中间有一个圆

javascript - (()=>true)() 前的分号

javascript - 单击 <div> 打开对话框?