Ce séparateur est en fait une cellule de table contenue dans une ligne de table. Il maintient un background-color
et background-image
pour lui donner l'effet semblable à ce que vous verriez dans une application de bureau.
Je ne sais pas dans quelle mesure vous voulez faire cela, mais en supposant que la cellule de table est déjà spécifiée dans le balisage et il a les styles appropriés, vous aurez besoin de configurer plusieurs choses:
- Un gestionnaire
mousedown
pour l'enregistrement lorsque l'utilisateur a cliqué sur la cellule.
- Un gestionnaire
mousemove
pour mettre à jour la position du séparateur dans le contexte de la fenêtre du navigateur.
- Un gestionnaire
mouseup
pour savoir quand arrêter la mise à jour de l'emplacement du séparateur.
Il y a des variations sur la façon de faire, mais voici un exemple extrêmement difficile:
var bMouseIsDown = false;
Event.observe('separator', 'mousedown', function() {
bMouseIsDown = true;
});
Event.observe('separator', 'mouseup', function() {
bMouseIsDown = false;
});
Event.observe('separator', 'mousemove', function(evt) {
if(bMouseIsDown === true) {
var iX = Event.pointerX(evt);
var iOffsetX = iX - Position.page($('separator'))[0];
var iWidth = $('separator').getDimensions().width;
var iElementOffset = iWidth - iOffsetX;
$(this).setStyle({
left: iX - iElementOffset
});
}
});