0

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

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

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

长话短说:

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

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

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

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

等等...

4

1 回答 1

1

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

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

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/

于 2013-08-07T21:38:34.020 回答