我有一个滑块,我正在操纵它的颜色和渐变。
它使用mootools,一切正常。
的 JSFIDDLE
var inputs = document.getElementsByTagName('input');
inputs = Array.splice(inputs, 0);
inputs.forEach(function (item) {
if (item.type === 'range') {
item.onchange = function () {
value = (item.value - item.min)/(item.max - item.min)
item.style.backgroundImage = [
'-webkit-gradient(',
'linear, ',
'left top, ',
'right top, ',
'color-stop(' + value + ', #0B8CDD), ',
'color-stop(' + value + ', #898989)',
')'
].join('');
};
}
});
我想将Mootools js代码转换为Js / Jquery。
请帮帮我。
答案 0 :(得分:1)
尝试
使用element和attribute selectors定位input type="range"
元素,使用change()方法注册更改事件处理程序,然后使用.css()设置css属性
$('input[type="range"]').change(function () {
//`this` inside the handler refers to the current input element
var value = (this.value - this.min) / (this.max - this.min);
//use `.css()` to set the css properties
$(this).css('backgroundImage', [
'-webkit-gradient(',
'linear, ',
'left top, ',
'right top, ',
'color-stop(' + value + ', #0B8CDD), ',
'color-stop(' + value + ', #898989)',
')'].join(''));
});
演示:Fiddle
答案 1 :(得分:1)
如果Mootools有效,为什么要改变?
普通javascript:
var inputs = document.querySelectorAll('input[type="range"]');
for (var i = 0; i < inputs.length; i++) {
var item = inputs[i];
item.addEventListener('change', function () {
value = (this.value - this.min) / (this.max - this.min)
this.style.backgroundImage = [
'-webkit-gradient(',
'linear, ',
'left top, ',
'right top, ',
'color-stop(' + value + ', #0B8CDD), ',
'color-stop(' + value + ', #898989)',
')'].join('');
});
};
这是另一个版本,有非常小的jQuery:
$('input[type="range"]').change(function () {
value = (this.value - this.min) / (this.max - this.min)
this.style.backgroundImage = [
'-webkit-gradient(',
'linear, ',
'left top, ',
'right top, ',
'color-stop(' + value + ', #0B8CDD), ',
'color-stop(' + value + ', #898989)',
')'].join('');
});