MooTools - Sliders
Controle deslizante é uma funcionalidade que reflete uma ação ao deslizar o botão ou qualquer botão. Você pode criar seu próprio controle deslizante enquanto define elementos, o manipulador, opções e eventos de retorno de chamada. Vamos discutir mais sobre o controle deslizante.
Criação de um novo controle deslizante
Primeiro, temos que escolher os elementos HTML adequados para o controle deslizante. Considerando a ideia básica, os elementos div são os mais adequados para controles deslizantes porque, usando divs, podemos criar elementos filho. Agora temos que definir o CSS para esses divs para tornar a estrutura div como um controle deslizante perfeito. Aqui, o div pai é paraslider e o div filho é para knob.
Agora temos que usar esses divs como controles deslizantes, passando os elementos para o construtor Slider como sliderObject, e knobObject. Dê uma olhada na seguinte sintaxe para definir o controle deslizante.
Sintaxe
var SliderObject = new Slider(sliderObject , knobObject , [,options,],..);
Também temos que definir as opções do controle deslizante.
Opções de controle deslizante
Vamos discutir algumas opções que são usadas para controles deslizantes.
Snap
Um valor instantâneo pode ser verdadeiro ou falso. Isso determina se o botão se ajusta às etapas conforme é arrastado pelo controle deslizante. Por padrão, é falso.
Deslocamento
Este é o deslocamento relativo do botão da posição inicial. Experimente experimentar com este. Por padrão, é 0.
Alcance
Esta é uma opção muito útil. Você pode definir um intervalo de números em que as etapas serão divididas. Por exemplo, se o seu intervalo fosse [0, 200] e você tivesse 10 passos, seus passos seriam 20 separados. O intervalo também pode incluir números negativos, por exemplo [-10, 0], que é muito útil ao inverter a rolagem. Por padrão, é falso.
Roda
Defina a roda como verdadeira e o scroller reconhecerá o evento da roda do mouse. Ao usar a roda do mouse, pode ser necessário ajustar o intervalo para garantir que o evento da roda do mouse não apareça invertido (novamente, mais sobre isso posteriormente).
Passos
O padrão de 100 etapas é muito útil, pois é fácil de usar como porcentagem. Você pode, no entanto, definir quantas etapas (que são utilizáveis) dentro do razoável. Por padrão, é 100.
Modo
O modo definirá se um controle deslizante se registra como vertical ou horizontal. No entanto, existem mais algumas etapas necessárias para converter de horizontal para vertical. Por padrão, é horizontal.
Eventos de retorno de chamada
Existem três eventos de retorno de chamada importantes que um Slider fornece.
em mudança
Qualquer mudança na etapa atual aciona a execução do evento. Confira o exemplo fornecido abaixo para ver quando ele é executado.
onTick
Qualquer mudança na posição do identificador aciona a execução deste evento. Confira o exemplo fornecido abaixo para ver o que ele executa.
onComplete
Este evento é executado sempre que o identificador é solto. Confira o exemplo fornecido abaixo para ver quando ele é executado.
Exemplo
O exemplo a seguir explica o controle deslizante horizontal e vertical junto com os indicadores de evento. Dê uma olhada no código a seguir.
<!DOCTYPE html>
<html>
<head>
<style "text/css">
#slider {
width: 200px;
height: 20px;
background-color: #0099FF;
}
#knob {
width: 20px;
height: 20px;
background-color: #993333;
}
#sliderv {
width: 20px;
height: 200px;
background-color: #0099FF;
}
#knobv {
width: 20px;
height: 20px;
background-color: #993333;
}
#change{
background-color: burlywood;
border: 2px solid black;
width: 200px;
}
#complete{
background-color: burlywood;
border: 2px solid black;
width: 200px;
}
</style>
<script type = "text/javascript" src = "MooTools-Core-1.6.0.js"></script>
<script type = "text/javascript" src = "MooTools-More-1.6.0.js"></script>
<script type = "text/javascript">
window.addEvent('domready', function() {
var SliderObject = new Slider('slider', 'knob', {
//options
range: [0, 10],
snap: false,
steps: 10,
offset: 0,
wheel: true,
mode: 'horizontal',
//callback events
onChange: function(step){
$('change').highlight('#F3F825');
$('steps_number').set('html', step);
},
onTick: function(pos){
$('tick').highlight('#F3F825');
$('knob_pos').set('html', pos);
//this line is very necessary (left with horizontal)
this.knob.setStyle('left', pos);
},
onComplete: function(step){
$('complete').highlight('#F3F825')
$('steps_complete_number').set('html', step);
this.set(step);
}
});
var SliderObjectV = new Slider('sliderv', 'knobv', {
range: [-10, 0],
snap: true,
steps: 10,
offset: 0,
wheel: true,
mode: 'vertical',
onChange: function(step){
$('stepsV_number').set('html', step*-1);
}
});
//sets the vertical one to start at 0
//without this it would start at the top
SliderObjectV.set(0);
//sets the slider to step 7
$('set_knob').addEvent('click', function(){ SliderObject.set(7)});
});
</script>
</head>
<body>
<div id = "slider">
<div id = "knob"></div>
</div><br/><br/>
<div id = "sliderv">
<div id = "knobv"></div>
</div><br/>
<span id = "stepsV_number"></span> <br/>
<div id = "change" class = "indicator">
<strong>onChange</strong><br/>
Passes the step you are on: <span id = "steps_number"></span>
</div></br/>
<div id = "complete" class = "indicator">
<strong>onComplete</strong><br />
passes the current step: <span id = "steps_complete_number"></span>
</div>
</body>
</html>
Resultado
Clique no botão marrom nos controles deslizantes horizontais ou verticais e arraste-o. Você encontrará a posição da etapa e a indicação do evento para cada ação.