javascript - JS 原生怎么写淡出效果?

查看:126
本文介绍了javascript - JS 原生怎么写淡出效果?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

<div id="promptBox" class="box" style="display: none;">
    <div id="information"></div>
</div>

让这个promptBox实现淡出效果,用原生的JS要怎么写?查了好多资料,都不能用。

抱大腿了,大神们

解决方案

给你封装了一个方法:


            function fadeIn(el) {
                  el.style.opacity = 0;
                  el.style.display="";
                
                  var last = +new Date();
                  var tick = function() {
                    el.style.opacity = +el.style.opacity + (new Date() - last) / 1000;//1000是可改的,数字越大,显示的速度越慢
                    last = +new Date();
                
                    if (+el.style.opacity < 1) {
                      (window.requestAnimationFrame && requestAnimationFrame(tick)) || setTimeout(tick, 16);
                    }
                  };
                  tick();
                }
                
                 var el=document.getElementById("promptBox");
                 fadeIn(el);

瞅了下,我好像写反了,变成了淡入,只要改个符号就行了(支持IE9+):

        function fadeOut(el) {
              el.style.opacity = 1;
              el.style.display="";
            
              var last = +new Date();
              var tick = function() {
                el.style.opacity = +el.style.opacity - (new Date() - last) / 1000;
                last = +new Date();
            
                if (+el.style.opacity >0) {
                  (window.requestAnimationFrame && requestAnimationFrame(tick)) || setTimeout(tick, 16);
                }
              };
              tick();
            }

这篇关于javascript - JS 原生怎么写淡出效果?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆