将mootools代码转换为jquery

时间:2013-12-03 15:37:15

标签: javascript jquery mootools

我有一个滑块,我正在操纵它的颜色和渐变。

它使用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。

请帮帮我。

2 个答案:

答案 0 :(得分:1)

尝试

使用elementattribute 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('');
    });
};

Fiddle


这是另一个版本,有非常小的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('');
});

Fiddle