【问题标题】:jQuery counter from specified variables来自指定变量的 jQuery 计数器
【发布时间】:2012-02-22 21:31:49
【问题描述】:

如果我有以下变量

$(document).ready(function() {
    var minsecond = 1;
    var maxseconds = 4;
    var updateinterval = 1;
    var interval = updateinterval*1000;
    window.setInterval(function(){
    var currentseconds = ; //value increasing by 1 every var updateinterval (value) in seconds  from var minsecond value until it reaches var maxseconds and resetting to var minsecond value and cycling again
    $("span").html(currentseconds);
    }, interval);
});
​

如何创建一个计数器,该计数器从 var minsecond 的值开始,每隔 var updateinterval 增加 1,以达到 var maxsecond 的值,然后在 var minsecond 重新启动 http://jsfiddle.net/TnNhA/

【问题讨论】:

    标签: javascript jquery counter


    【解决方案1】:

    我认为像下面这样的东西是你想要的,

    DEMO

    $(document).ready(function() {
        var minsecond = 1;
        var maxseconds = 4;
        var updateinterval = 1;
        var interval = updateinterval*1000;
    
        var currentseconds = minsecond;
    
        window.setInterval(function(){
            if (currentseconds > maxseconds ) {
                 currentseconds = minsecond;
            }
    
            $("span").html(currentseconds++);
        }, interval);
    });
    

    【讨论】:

      【解决方案2】:

      这个怎么样:

      var maxseconds = 4;
      var updateinterval = 1;
      var interval = updateinterval * 1000;
      
      var counter = 1;
      
      window.setInterval(function() {
          $("span").html(counter);
          counter = (counter % maxseconds == 0) ? 1 : counter + 1;
      }, interval);​
      

      jsFiddle 示例

      【讨论】:

        【解决方案3】:

        这样的东西对你有用吗?

        var currentseconds = 0;
        setInterval(yourFunction(), interval);
        
        function yourFunction() {
          if (minsecond >= maxsecond) {
            currentseconds = minsecond;
          }
          else {
            currentseconds++;
          }
          $("span").html(currentseconds);
        }
        

        设置测试以检查 currentseconds 是否到达您的 maxsecond var,重置它。

        【讨论】:

        • 当心来电-setInterval gotcha。
        【解决方案4】:

        应该这样做。棘手的部分是间隔,因为它是可变的。在我的回答中,我假设您不是按整数递增,而是按您的间隔量递增。希望你也是这么想的。

        http://jsfiddle.net/Vfnjh/1

        $(document).ready(function() {
            var minsecond = 1;
            var maxseconds = 4;
            var updateinterval = 1;
            var interval = updateinterval * 1000;
            var currentseconds = minsecond;
        
            window.setInterval(function() {
                currentseconds += updateinterval;
                if (currentseconds > maxseconds) {
                    currentseconds = minsecond;
                }
                $("span").html(currentseconds);
            }, interval);
        });​
        

        【讨论】:

        • Not currentseconds += updateinterval From OP post "计数器从 var minsecond 的值开始,每 var updateinterval 以秒为单位增加 1 到 var maxsecond 的值,然后在 var minsecond 处重新启动"
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-28
        • 1970-01-01
        相关资源
        最近更新 更多