 Antes por lo menos la consola de errores me marcaba los errores, valga la redundancia, pero ahora ni eso, simplemente no funciona. Dejo el código a ver si me podéis ayudar XD
 Antes por lo menos la consola de errores me marcaba los errores, valga la redundancia, pero ahora ni eso, simplemente no funciona. Dejo el código a ver si me podéis ayudar XD
Código Javascript:
Y lo llamo así:Ver original
Object.prototype.clonar = function(){
var clon = {};
clon.prototype = this.prototype;
for(var i in this){
clon[i] = this[i];
}
return clon;
};
Object.prototype.calcar = function(obj){
var clon = {};
clon.prototype = this.prototype;
for(var i in this){
clon[i] = this[i];
}
for(var i in obj){
clon[i] = obj[i];
}
return clon;
};
JSPlus.Fx = {};
JSPlus.Fx.Efectos = {}
/* Aquí están todas las funciones,
* no las pongo porque es muy largo
*/
JSPlus.Fx.porDefecto = {
'Opciones' : {
'duracion' : 1000,
'curva' : 'lineal',
'intervalo' : 20,
'unidad' : 'px'
}
};
JSPlus.Fx.Transicion = function(obj, opc){
var este = this;
this.fin = 0;
this.start = new Date().getTime();
this.inicio = function(){
setTimeout(function(){
var step = este.paso();
if(!step){
obj.fn(1);
este.fin = 1;
window.globalIntervalo = 0;
return;
}
obj.fn(step);
este.inicio();
}, opc.intervalo);
};
this.paso = function(){
var now = new Date().getTime();
return (now - this.start < opc.duracion) && opc.curva(now - this.start);
};
}
JSPlus.metodos({
'FX' : function(objeto, opciones){
var fx = JSPlus.Fx, este = P(this);
for(var i in objeto){ // tipo [desde, hasta]
var prop = objeto[i];
if(!/(string|number)/i.test(typeof prop)) continue; // !(function, array, object, ...)
objeto[i] = [este.getStyle(i), prop]; // [desde[ahora], hasta]
};
var obj = objeto.clonar(), opc = (opciones || {}).calcar(fx.porDefecto.Opciones); // setea sólo si no se declaran
if(typeof opc.curva === 'array'){ // parche -> lineal(p), reboteG(n)(p)
opc.curva = fx.Efectos[opc.curva[0]](opc.curva[1]);
}else{
opc.curva = fx.Efectos[opc.curva];
}
obj.fn = function(p){ // paso
for(var i in obj){
act = obj[i];
if(!/array/i.test(typeof act)) continue; // sólo arrays
var ini = parseFloat(act[0]), fin = parseFloat(act[1]);
var difer = Math.abs(ini - fin), prop = i.toLowerCase();
var dvlp = (ini + p * difer) + ((act[1].toString().match(/[A-z]+$/) || [])[0] || opc.unidad); // si hay unidad declarada se usa esa
console.log(dvlp); // Esto no llega a mostrarse
este.css('position', 'absolute').css(prop, dvlp);
if(prop == 'opacity'){ este.opacity(ini + p * difer); } // si es opacity no lleva unidad
}
};
JSPlus.escribir(obj); // console.log
var trans = new JSPlus.Fx.Transicion(obj, opc);
trans.inicio();
trans = null;
return P(this);
}
});
Código Javascript:
Saludos y gracias :D Ver original
P('#ejemplo').FX({
'left' : 100,
'width' : '500px',
opacity : 0.5,
}, {
'duracion' : 1000,
'curva' : ['reboteG', 3]
});
 
 


 
  XD
 XD
 En FF tengo algunos problemas con que la transición va a saltos pero creo que es problema de que tengo el PC sobrecargado XD En IE ni lo probé, supongo que la parte del CSS no funcionará pero el efecto debería.
 En FF tengo algunos problemas con que la transición va a saltos pero creo que es problema de que tengo el PC sobrecargado XD En IE ni lo probé, supongo que la parte del CSS no funcionará pero el efecto debería.

