【问题标题】:Animating a range slider back and forth (loop)来回动画范围滑块(循环)
【发布时间】:2015-06-09 23:06:14
【问题描述】:

我正在尝试对范围滑块进行动画处理,该滑块在每次移动约 2 秒的持续时间内滑动到最大值并向下滑动到最小值,并且增量为 1。我不希望它是瞬时的;我希望用户看到滑块来回移动。这是我当前的代码:

var slider = $("#battleslider").slider({
animate: 900
});

$('#move').click(function(){
slider.slider('value', slider.slider('value') + 500);
slider.slider('value', slider.slider('value') - 500);
});

问题在于,当浏览器加载并激活按钮时,滑块几乎瞬间处于最大值,然后在适当的持续时间内减小。我还需要幻灯片以 1 为增量进行更改,以便用户可以准确了解位置。但是要做到这一点,我需要一个循环,这基本上会导致我的浏览器(Chrome)冻结。

任何替代方法或其他任何东西都会很棒!

我希望这是有道理的,如果需要进一步说明,请告诉我。

提前致谢!

编辑:JSFiddle:http://jsfiddle.net/5j2f0L2t/1/

【问题讨论】:

标签: javascript jquery jquery-ui jquery-animate range


【解决方案1】:

我建议您为此使用 css3(和 javascript/jQuery)。您可以使用 css3 animations 设置动画,其余功能可以在需要时添加。

我创建并举例here

@keyframes slide
{
  0% { left: 10px; }
  50% { left: 160px; }
  100% { left: 10px; }
}

#slider
{
   animation-name: slide;
   animation-duration: 2s;
   animation-iteration-count: 1;
   animation-delay: 1s; 
}

【讨论】:

  • 感谢代码和示例!使用这段代码,我还可以在某个时刻获得滑块的确切值,而不仅仅是它的目的地。看起来是这样,但我只是想确定一下。
  • 没问题,查看所有possibilities of css3 animation 了解更多信息。
  • 对不起,我是想在那儿打个问号。我的意思是能够在某个时刻获得滑块的确切值?再次感谢。
  • 是的,我updated the pen。通过使用“offsetLeft”属性,可以随时获取坐标点击红色按钮使其移动。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-28
  • 2020-01-11
  • 2015-07-12
  • 2018-11-21
  • 2011-02-10
相关资源
最近更新 更多