Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/02/2011, 14:28
Avatar de _cronos2
_cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: Problema con timing (entre otros)

Este es el código entero:
Código Javascript:
Ver original
  1. function addEvent(tipo, toDo, obj){
  2.  if(obj.attachEvent){
  3.   var thix = obj, fn = function(){ toDo.call(thix, window.event); };
  4.   obj.attachEvent('on'+tipo, fn);
  5.   this[toDo.toString()+tipo]=fn;
  6.  }else{
  7.   if(obj.addEventListener)
  8.    obj.addEventListener(tipo, toDo, false);
  9.   else
  10.    obj['on'+tipo]=toDo;
  11.  }
  12. }
  13. var JSPlus = (function(){
  14.  var privado = {
  15.   evento : function(tipo, toDo){
  16.    return addEvent(tipo, toDo, this);
  17.   },
  18.   quitaEvento : function(tipo, fn){
  19.    if(this.detachEvent)
  20.     this.detachEvent('on'+tipo, this[fn.toString()+tipo]);
  21.    else{
  22.     if(this.removeEventListener)
  23.      this.removeEventListener(tipo, fn, false);
  24.     else
  25.      this['on'+tipo]=null;
  26.    }
  27.    return P(this);
  28.   },
  29.   getStyle : function(style){
  30.    var computedStyle;
  31.    if (typeof this.currentStyle != 'undefined')
  32.     computedStyle = this.currentStyle;
  33.    else
  34.     computedStyle = document.defaultView.getComputedStyle(this, null);
  35.   return computedStyle[style];
  36.   },
  37.   atrb : function(att){ return this.getAttribute(att); },
  38.   set : function(att, valor){ this.setAttribute(att,valor); return P(this); },
  39.   css : function(estilo, valor){
  40.    var propi = !(/-/.test(estilo)) ? estilo : (function(s){var str=s.split('-');
  41.     for(i=0;i<str.length;i++){
  42.      str[i]=str[i].charAt(0).toUpperCase()+str[i].substr(1);
  43.     }
  44.     return str.join('');
  45.    })(estilo);
  46.    this.style[propi] = valor;
  47.    return P(this);
  48.   },
  49.   opacity : function(){
  50.    var isIE = document.all, estilos = isIE ? ['filter', 100] : ['opacity', 1], valor = isIE ? ['alpha(opacity=', ')'] : ['', ''];
  51.    if(arguments.length)
  52.     this.style[estilos[0]] = valor[0] + (arguments[0] * estilos[1]) + valor[1];
  53.    else
  54.     return P(this).getStyle('opacity');
  55.    return 1;
  56.   },
  57.   entrada : function(t){
  58.    var tempo = { 'lento' : 800, 'medio' : 500, 'rapido' : 200};
  59.    var tiempo = isFinite(t)?t:tempo[t], thix = P(this), incr = 20/tiempo;
  60.    thix.opacity(0);
  61.    var timer = setInterval(function(){
  62.     if(thix.opacity()>=1) timer = clearInterval(timer);
  63.     else{
  64.      thix.opacity(thix.opacity()+incr);
  65.     }
  66.    }, 20);
  67.    return P(this);
  68.   },
  69.   salida : function(t){
  70.    var tempo = { 'lento' : 800, 'medio' : 500, 'rapido' : 200};
  71.    var tiempo = isFinite(t)?t:tempo[t], thix = P(this), incr = 20/tiempo;
  72.    thix.opacity(1);
  73.    var timer = setInterval(function(){
  74.     if(thix.opacity()<=0) timer = clearInterval(timer);
  75.     else{
  76.      thix.opacity(thix.opacity()-incr);
  77.     }
  78.    }, 20);
  79.    return P(this);
  80.   },
  81.   hover : function(toDo){
  82.    addEvent('mouseover', toDo, this);
  83.    return P(this);
  84.   },
  85.   out : function(toDo){
  86.    addEvent('mouseout', toDo, this);
  87.    return P(this);
  88.   },
  89.   nodo : function(elem){ this.appendChild(elem); return P(this); },
  90.   extendido : true
  91.  };
  92.  return {
  93.   extender : function(elem, obj){
  94.    if(elem.extendido && elem != privado) return elem;
  95.    for(var i in obj){
  96.      elem[i] = obj[i];
  97.    }
  98.    return elem;
  99.   },
  100.   get : function(obj){
  101.    switch(typeof obj){
  102.     case 'object':
  103.      return JSPlus.extender(obj, privado);
  104.     break;
  105.     case 'string':
  106.      return JSPlus.extender(document.querySelector(obj), privado);
  107.     break;
  108.    }
  109.    return null;
  110.   },
  111.   metodos : function(obj){
  112.    JSPlus.extender(privado, obj);
  113.   }
  114.  };
  115. })();
  116. var P = JSPlus.get;
Saludos y gracias ;D
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red