【问题标题】:Count up/down Array animation递增/递减数组动画
【发布时间】:2018-04-10 14:40:16
【问题描述】:

我想在按左右箭头时使用数组创建一个上下计数动画。

我有 3 个数组,每个箭头将链接到一个 ID。

var KEY = {
  LEFT: 37,
  RIGHT:  39
}

$(function(){
  $(document).keydown(function(e){
    switch(e.which){
      case  KEY.RIGHT:
        // Arrays +1

      break;
      case  KEY.LEFT:
        // Arrays -1

      break;
    }
  });
});

var asiel = [0, 200, 300, 900, 1100, 2000];   

var nareiziger = [0, 200, 300, 900, 1100, 2000];   

var total = [0, 200, 2590, 9000, 11000, 23000];   

演示:codepen

我真的不知道如何处理它。

我该怎么做?

非常感谢您的帮助!

【问题讨论】:

    标签: javascript jquery html arrays counter


    【解决方案1】:

    一旦你掌握了数组和索引的窍门,就不会那么难了。看看:

    引入一个新变量:counter

    每次用户点击左或右时,它都会获得一个新值。 测试索引是否在数组中。

    在函数末尾使用array[index]反映计数器。

    var KEY = {
      LEFT: 37,
      RIGHT:  39
    }
    var counter = 0;
    
    $(function(){
      $(document).keydown(function(e){
        switch(e.which){
          case  KEY.RIGHT:
            // Arrays +1
            asiel.length == counter ? counter = asiel.length -1 : null;
            counter++;    
          break;
          case  KEY.LEFT:
            // Arrays -1
            counter--;
            0 > counter ? counter = 0 : null;
          break;
        }
        $("#asiel").text(asiel[counter]);
        $("#nareizigers").text(nareiziger[counter]);
        $("#total").text(total[counter]);
      });
    });
    
    var asiel = [0, 200, 300, 900, 1100, 2000];   
    
    var nareiziger = [0, 200, 300, 900, 1100, 2000];   
    
    var total = [0, 200, 2590, 9000, 11000, 23000];   
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="col-md-12 data">
    		<div class="row">
    			<div class="col-sm-4">
    				<div id="datum">
    					<h1>Maart 2015</h1>
    					
    				</div>
    			</div>
    			
    				
    				<div class="col-sm-3">
    					<div class="asiel">
    						<h3 class="white-h3" >
    							+ <span id="asiel">0</span>
    						</h3>
    						<div class="subtitel">
    							Eerste asielzoekers
    						</div>
    					</div>
    					<div class="eerste-asiel">
    						<h3 class="white-h3" >
    							+ <span id="nareizigers">127</span>
    						</h3>
    						<div class="subtitel">
    							Nareizigers
    						</div>
    					</div>
    				</div> <!-- // colomn-2 -->
    				<div class="col-sm-4">
    					<div class="asiel">
    						<h3 class="white-h3" id="total">
    							29.301
    						</h3>
    						<div class="subtitel">
    							Totaal aantal syrische immigranten sinds januari 2013
    						</div>
    					</div>
    				</div>
    			
    		</div>
    	</div>

    【讨论】:

    • 效果很好!但是是否也可以让数字看起来像一个计数。例如像这样:inorganik.github.io/countUp.js
    • 是的,这是可能的,但这需要大量的编码,而且我不适合雇用。本站仅用于解决编码问题。
    【解决方案2】:

    这是一个工作小提琴。只需使用该位置定义一个新变量并上下计数。

    Working Fiddle

    var KEY = {
      LEFT: 37,
      RIGHT:  39
    }
    var asiel = [0, 200, 300, 900, 1100, 2000];   
    
    var nareiziger = [0, 200, 300, 900, 1100, 2000];   
    
    var total = [0, 200, 2590, 9000, 11000, 23000];   
    
    $(function(){
      let pos = 0
      changeVal()
      function changeVal(){
      $("#asiel").html(asiel[pos])
      $("#total").html(total[pos])
      $("#nareiziger").html(nareiziger[pos])
      }
      $(document).keydown(function(e){
        switch(e.which){
          case  KEY.RIGHT:
    
            pos < total.length ? pos += 1
            : pos = total.length
    
            changeVal()
            // Arrays +1
    
          break;
          case  KEY.LEFT:
            pos > 0 ?
            pos -= 1
            : pos = 0
    
            changeVal()
            // Arrays -1
    
          break;
        }
      });
    });
    

    【讨论】:

    • 这看起来很棒,但也有可能得到这个像真正计数一样。例如,现在它的弹簧从 0 到 200。
    • 不知道你的意思。数组中第一项为 0 下一项为 200
    • 随着计数动画我正在寻找这样的东西:inorganik.github.io/countUp.js 但它必须计数到放置在数组中的数字。
    猜你喜欢
    • 2013-05-10
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多