JavaScript fadeIn与fadeOut,原生js实现fadeIn和fadeOut

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

// 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');
}

演示

代码来源


关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流