JavaScript fadeIn与fadeOut代码

使用jQuery可以轻松使用fadeIn()和fadeOut()这两个动画方法。javascript代码又如何,看看下面的代码:

// fade out

function fadeOut(el){
  el.style.opacity = 1;

  (function fade() {
    if ((el.style.opacity -= .1) < 0) {
      el.style.display = "none";
    } else {
      requestAnimationFrame(fade);
    }
  })();
}

// fade in

function fadeIn(el, display){
  el.style.opacity = 0;
  el.style.display = display || "block";

  (function fade() {
    var val = parseFloat(el.style.opacity);
    if (!((val += .1) > 1)) {
      el.style.opacity = val;
      requestAnimationFrame(fade);
    }
  })();
}

使用方法:

var el = document.querySelector('.js-fade');
fadeOut(el);
fadeIn(el);
fadeIn(el, "inline-block");

演示

还可以使用CSS+JS方法:fadeOut

@keyframes fadeIn {
  to {
    opacity: 1;
  }
}

.fade-in {
  opacity: 0;
  animation: fadeIn .5s ease-in 1 forwards;
}

.is-paused {
  animation-play-state: paused;
}
<div class='js-fade fade-in is-paused'>You look amazing!</div>
var el = document.querySelector('.js-fade');
if (el.classList.contains('is-paused')){
  el.classList.remove('is-paused');
}

演示

代码来源

原文链接:JavaScript fadeIn与fadeOut代码 版权所有,转载时请注明出处,违者必究。
注明出处格式:前端开发博客 (http://caibaojian.com/javascript-fadein-fadeout.html)

发表评论

请登录后发表评论: