我正在使用JQueryUI并使用单个条形图(“红色,黄色,绿色,青色,蓝色,洋红色”)制作“色调”颜色选择器。
我想知道是否有特殊事件来确定用户当前是向左还是向右滑动,还是在此期间递增或递减该值。
正如您所看到的,在这种情况下,slidestart
事件是无用的:我知道的唯一方法是存储上一个变量并使用if
,与{{1}进行比较}和current_value
。怎么样?
长话短说:
当滑块prev_value
为0时,红色为255。
当滑块value
为255时,黄色为值。 (直到这里没关系)
value
滑块If
从510开始递减,然后value
red--;
滑块If
从255增加,然后value
依旧......
答案 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');