setInterval实现渐变效果

1
实现功能:
1.点击 淡出 按钮,蓝色区域颜色逐渐变淡直至完全透明。
2.蓝色区域变透明的同时,淡出 按钮中的文字变为 淡入
3.点击 淡入后,透明的背景逐渐变回蓝色,按钮文字变回淡出

<body>
    <div id="fade-obj" style="width:300px;height:300px;background:#3399FF"></div>
    <button id="fade-btn">淡出</button>
</body>
<script>
var transColor = document.querySelector('div');
var btnRest = document.querySelector('button');
var speed;
var timer = null;
var alpha;
var target;

// console.log('%O', btnRest);

function startRun() {
    if(btnRest.innerHTML === '淡出') {
        var btnText = '淡入';
        speed = -2;
        alpha = 100;
        target = 0;
    }
    else {
        var btnText = '淡出';
        speed = 2;
        alpha = 0;
        target = 100;
    }
    
    btnRest.disabled = true;
    timer = setInterval(function() {
        alpha = alpha + speed;
        transColor.style.opacity = alpha / 100;
        transColor.style.filter = 'alpha(opacity = alpha)';
        if (alpha == target) {
            clearInterval(timer);
            btnRest.disabled = false;
            btnRest.innerHTML = btnText;
        }
    }, 30)
}
btnRest.onclick = startRun;

</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值