【问题标题】:Get which direction the slider goes获取滑块的方向
【发布时间】:2013-08-09 09:54:40
【问题描述】:

我正在使用 JQueryUI 并使用单条(“红色、黄色、绿色、青色、蓝色、洋红色”)制作一个“色调”颜色选择器

问题是我想知道是否有一个特殊事件来确定用户当前是向左还是向右滑动,或者同时增加或减少值。

如您所见,在这种情况下,slidestart 事件是无用的:我知道的唯一方法是存储前一个变量并使用if,与current_valueprev_value 进行比较。怎么样?

长话短说:

当滑块value为0时,红色为255。

当滑块value 为 255 时,黄色为值。 (直到这里没问题)

If 滑块 value 从 510 递减,然后是 red--;

If 滑块 value 从 255 递增,然后是 red++;

等等……

【问题讨论】:

  • 难道你不能根据你设置的方向并通过比较新值和旧值来判断它的方向吗?
  • 不,没有内置的方法来判断它是向左还是向右移动。你必须根据初始值和当前值来计算。
  • SteveKB:问题是我不知道哪个事件适合这种情况。 j08691:那么,当我移动滑块时,我可以做些什么来检测滑块值是递增还是递减?

标签: jquery jquery-ui slider slide


【解决方案1】:

如 cmets 所述,开箱即用无法确定滑块的移动方式。 但是,如果您正在构建一个色调滑块,我不确定您为什么仍然需要它?

我自己刚刚创建了一个这样的滑块,它似乎可以正常工作。 请注意,这些计算被快速组合在一起,并且肯定可以更有效地编写,因为这只是一个测试。

HTML:

<input type="range" max="1530" min="0" style="width:100%" value="0" />
<br/><span/>

JS:

    $('input').change(function () {
        var v = $(this).val();
        var r = v < 255 || v > 255 * 5 ? 255 : (v < 255 * 2 ? 255 - (v - 255) : (v > 255 * 4 ? v - 255 * 4 : 0));
        var g = v < 255 ? v : (v < 255 * 3 ? 255 : (v < 255 * 4 ? 255 - (v - 255 * 3) : 0));
        var b = v < 255 * 2 ? 0 : (v < 255 * 3 ? (v - 255 * 2) : (v < 255 * 5 ? 255 : (v < 255 * 6 ? 255 - (v - 255 * 5) : 0)));

        $('span').text(r + ' ' + g + ' ' + b);
        $('body').css('background', 'rgb(' + r + ',' + g + ',' + b + ')');
    }).trigger('change');

演示:
http://jsfiddle.net/aUZ2L/

【讨论】:

  • 它旨在在一个滑块中向用户显示许多可能性(或网页特定部分的颜色,作为调试模式),而无需尝试其中的三个。光是想想就让我睡着了,忘记了挑选颜色,所以我决定做一个来加快决策速度。更有效率,只是我不知道这很痛苦,我的意思是制作其中一个。 ://
猜你喜欢
  • 2018-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多