获取滑块的方向

时间:2013-08-07 20:33:36

标签: jquery jquery-ui slider slide

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

我想知道是否有特殊事件来确定用户当前是向左还是向右滑动,还是在此期间递增或递减该值。

正如您所看到的,在这种情况下,slidestart事件是无用的:我知道的唯一方法是存储上一个变量并使用if,与{{1}进行比较}和current_value。怎么样?

长话短说:

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

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

value滑块If从510开始递减,然后value

red--;滑块If从255增加,然后value

依旧......

1 个答案:

答案 0 :(得分: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/