为元素对象添加方法设置参数?

时间:2018-07-05 11:08:04

标签: javascript oop

我写了方法fadeInfadeOut,我知道它在jQuery中,但这是一种实践,因此我想向fadeIn方法中添加一个参数:

function fadeIn(e, time) {
  // e.style.opacity = 1;
  var op = Number(getComputedStyle(e).opacity).toPrecision(2);
  e.style.opacity = op;
  if (op >= 1) {
    return;
  }
  e.style.opacity = Number(op) + 0.01;
  setTimeout(function() {
    fadeIn(e)
  }, time)
}

function fadeOut(e) {
  // e.style.opacity = 0;
  var op = Number(getComputedStyle(e).opacity).toPrecision(2);
  e.style.opacity = op;
  if (op <= 0) {
    return;
  }
  e.style.opacity = Number(op) - 0.01;
  setTimeout(function() {
    fadeOut(e)
  }, 10)
}

Element.prototype.fadeIn = function(time) {
  fadeIn(this, time);
};
Element.prototype.fadeOut = function() {
  fadeOut(this);
};

1 个答案:

答案 0 :(得分:0)

您必须在正在进行的通话中打发时间:

setTimeout(function () {
    fadeIn(e, time); // <<<
}, time)

现在这是将不透明度增加1/100的间隔时间,因此您可能也想除以该时间:

Element.prototype.fadeIn = function (time) {
   fadeIn(this,time / 100);
};

所以现在

 el.fadeIn(1000); 

需要一秒钟的时间淡入。