1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
// un peu de style en dur ... on teste...
$("list").relativize();
var listDim = $("list").getDimensions();
$("list").setStyle({width: listDim.width + "px", height: listDim.height + "px"});
// pour pouvoir avoir une sequence...
$("list").select("li").invoke("identify");
// A quoi ressemble la sequence ?
Sortable.sequence('list');
// Ajoutons une nouvelle methode
Sortable.setSequenceWithEffect = function(element, newSequence) {
element = $(element);
var baseOpts = arguments[2] || {};
var options = Object.extend(this.options(element), baseOpts );
var nodeMap = { };
this.findElements(element, options).each( function(n) {
if (n.id.match(options.format))
nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode];
});
var effects = [];
var pos = 0;
newSequence.each(function(id) {
var n = nodeMap[id][0];
if (n) {
n.absolutize();
effects.push(new Effect.Move(n, {sync:true, mode:'absolute', y: pos}));
pos += n.getHeight();
}
});
// a la fin faisons ce que fait scriptaculous
new Effect.Parallel(effects, {duration:1, afterFinish: Sortable.setSequence.curry(element, newSequence, baseOpts)});
}
// testons
Sortable.setSequenceWithEffect("list", ["4","3","2","1"]); |
Partager