首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在循环中显示图标的JavaScript代码

在循环中显示图标的JavaScript代码
EN

Stack Overflow用户
提问于 2014-11-15 06:36:44
回答 7查看 3.1K关注 0票数 0

我有这个脚本,应该在一个循环中显示这7个图标。我想让它看起来像手机正在充电,但它不起作用。如何将最后一个图标(assets/icons/ic_battery_charging_full_48px.svg)添加到循环中。

代码语言:javascript
复制
$(document).ready(function(){
        var icons = [2,3,5,6,8,9];

        function displayIcons() {
            var i;
            for (i = 0; i < icons.length; i++) {
                show(i);
            }
        }
        function show(i) {

            setTimeout(function() {

                    $('div span').html('<img src="assets/icons/ic_battery_charging_'+ icons[i] + '0_48px.svg">');

            }, 1000 + i * 1000);

        }

            displayIcons();

    });

这些是图标。

代码语言:javascript
复制
<div class="container2">
        <img src="assets/icons/ic_battery_charging_20_48px.svg">
        <img src="assets/icons/ic_battery_charging_30_48px.svg">
        <img src="assets/icons/ic_battery_charging_50_48px.svg">
        <img src="assets/icons/ic_battery_charging_60_48px.svg">
        <img src="assets/icons/ic_battery_charging_80_48px.svg">
        <img src="assets/icons/ic_battery_charging_90_48px.svg">
        <img src="assets/icons/ic_battery_charging_full_48px.svg">
</div>

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-11-15 06:49:16

只需将最后一个添加到数组中,如下所示

代码语言:javascript
复制
$(document).ready(function () {

    var icons = [20, 30, 50, 60, 80, 90, 'full'];

    function displayIcons() {
        for (var i = 0; i < icons.length; i++) {
            show(i);
        }
    }

    function show(i) {

        setTimeout(function () {

            $('div span').html('<img src="assets/icons/ic_battery_charging_' + icons[i] + '_48px.svg">');

        }, 1000 + i * 1000);

    }

    displayIcons();
});
票数 2
EN

Stack Overflow用户

发布于 2014-11-15 06:47:00

尝尝这个。在您的情况下,您可以使用setInterval()而不是setTimeout()

代码语言:javascript
复制
var icons = [2,3,5,6,8,9];
var iconsLength = icons.length;
var i=0;
function displayIcons() {
    var myVar = setInterval(function(){
        if(i < iconsLength){
            $('div span').html('<img src="assets/icons/ic_battery_charging_'+ icons[i] + '0_48px.svg">');
            i++;
        }else{
            $('div span').html('<img src="assets/iconsic_battery_charging_full_48px.svg">'); //For your last image which is not in your array list
            clearInterval(myVar);
        }
    }, 1000);
}
displayIcons();
票数 1
EN

Stack Overflow用户

发布于 2014-11-15 07:03:28

你更有可能想要这样的东西(没有测试)

代码语言:javascript
复制
$(document).ready(function(){
  var tId=setInterval(function() {
    var $imgs $(".charging");
    var $active = $(".active");
    if ($active.length==0) $imgs.first().addClass("active").show();
    else {
      if ($active.next().length=0) {
        clearInterval(tId);
      }
      else {
        $active.removeClass("active).hide();
        $next.addClass("active").show();                    
      }                          
    }
  },500);
});
代码语言:javascript
复制
.charging { display:none }
代码语言:javascript
复制
<div class="container2">
        <img class="charging" src="assets/icons/ic_battery_charging_20_48px.svg">
        <img class="charging" src="assets/icons/ic_battery_charging_30_48px.svg">
        <img class="charging" src="assets/icons/ic_battery_charging_50_48px.svg">
        <img class="charging" src="assets/icons/ic_battery_charging_60_48px.svg">
        <img class="charging" src="assets/icons/ic_battery_charging_80_48px.svg">
        <img class="charging" src="assets/icons/ic_battery_charging_90_48px.svg">
        <img class="charging" src="assets/icons/ic_battery_charging_full_48px.svg">
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26943273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档