2

我想使用 jQuery 滑块 UI 来更改单独元素上的类。

例如,滑块将有 10 个步骤,并且对于每个步骤,将有一个相应的类应用于目标元素。

例如:

当滑块在位置 2 时,元素的类为“.step-two” 当滑块在位置 6 时,元素的类为“.step-six”

我还希望在用户移动滑块时更改类,而不仅仅是在发布时。这可能吗?

    $('#slider').slider({
    value:0,
    min: 0,
    max: 110,
    step: 11,

    slide: function(event,ui){

        if (ui.value<0) { 
            $('#object').addClass('step-one');
        } else if (ui.value<10) { 
             $('#object' ).addClass('step-two');

        }
    }
});
4

2 回答 2

1

这里有一些关于如何做的帮助,为什么你会想要这个超出我的范围:

$("#slider").slider({
    min: 1,
    max: 10,
    step: 1,
    range: false,
    slide: function(event, ui) {
        $("#someotherElement").removeClass().addClass('step_'+ui.value); //adds class step_1 -> step_10 etc
    }
});​

或者,如果您必须使用“一”、“二”等,请使用数组:

var array = ['one','two','three','four','five','six'....etc]

$("#slider").slider({
    min: 0,
    max: 10,
    step: 1,
    range: false,
    slide: function(event, ui) {
        $("#someotherElement").removeClass().addClass('step_'+array[ui.value]);
    }
});​

小提琴

于 2012-10-29T16:44:25.150 回答
0

是的,我能想到的一种方法是:

$( "#slider" ).slider({
    value:1,
    min: 1,
    max: 10,
    slide: function( event, ui ) {
        $("#someElementID").removeClass("step-" + (ui.value - 1) + " step-" + (ui.value + 1)).addClass("step-" + ui.value);
    }
});

另一个是:prolly better way here

var araClasses = new Array("step-one", "step-two", "step-three", "step-four", "step-five", "step-six", "step-seven", "step-eight", "step-nine", "step-ten");

$( "#slider" ).slider({
    value:0,
    min: 0,
    max: 9,
    change: function( event, ui ) { // change event is fired no matter how the slider is changed
        //  First remove all step classes
        for (x in araClasses) { $("#someElementID").removeClass(araClasses[x]) };
        // then add the relavant one
        $("#someElementID").addClass(araClasses[ui.value]);
    }
});
于 2012-10-29T16:44:15.557 回答