【问题标题】:Control width expand onClick while setInterval, js,html5在setInterval,js,html5时控制宽度展开onClick
【发布时间】:2015-06-25 06:00:42
【问题描述】:

我有 setInterval 问题。我做了一些类似于加载条的东西。当我单击鼠标时,我会扩展名为 loadBar1 的块的宽度

// here preset of interval and loadbar...
var interval = 0;
createLoadBar1 = function() {
loadBar1 = {
    // another stuff
    width:0,
};

document.onclick = function (mouse) {
    interval = setInterval(expandLoadBar1, 60);
}

借助此功能进行扩展:

function expandLoadBar1() {
    if(loadBar1.width < 60) {
        loadBar1.width++;
    }
    if (loadBar1.width >= 60) {
        loadBar1.width = 0;
        clearInterval(interval);
    }
}

上面很简单,当我单击一次时效果很好,但是当我通过鼠标单击多次单击时我开始遇到问题,这在逻辑上导致更快的 loadBar1.width 扩展两次并且在第二次或更多次鼠标单击后 clearInterval当我点击更多时,间隔停止工作并继续提高扩展速度。

【问题讨论】:

  • 好吧,如果你已经有一个间隔,那就不要开始另一个间隔......

标签: javascript html setinterval


【解决方案1】:

您可能需要清除用户点击时的间隔:

document.onclick = function () {
  clearInterval(interval);
  interval = setInterval(expandLoadBar1, 60);
}

【讨论】:

  • 如果我点击超过 1 次,它只会停止扩展,并且每 2 次或更多点击只会将 1 添加到 loadBar1.width
  • 当用户点击按钮时你希望发生什么?栏是否应该在他们再次点击之前完全展开?
  • 什么都不做,等到 loadBar1.width 扩大到 60px 宽度并碰撞到 0px ,然后如果再次点击它会开始相同
  • 在这种情况下禁用按钮。
  • 我刚刚更改了功能,它似乎工作得几乎很好,在多次点击后间隔工作良好并且速度没有增加:function expandLoadBar1() { if(loadBar1.width
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-29
  • 1970-01-01
相关资源
最近更新 更多