CSS3动画(transition,transform)和元素的隐藏显示display

    工作中经常会写一些简单的显示隐藏功能,可以适当加个动画

transition(过度动画,从某某某属性到某某某属性)

语法

transition: property duration timing-function delay;
描述
transition-property规定设置过渡效果的 CSS 属性的名称。
transition-duration规定完成过渡效果需要多少秒或毫秒。
transition-timing-function规定速度效果的速度曲线。
transition-delay定义过渡效果何时开始。

transform (转化动画)

   旋转:rotate()

   缩放:scale()

   翻转:skew()

 

transition和transform 动画会占文档流

display:none   不占文档流    block 占文档流

 

动画

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <style>
        .main{
            height: 600px;
            color: #fff;
        }
        .down{
            height: 300px;
            transform: scaleY(0);
            transition: transform 0.8s;
            transform-origin: bottom center;
            background: #2c275b;
        }
        .active {
            height: 300px;
            transform: scaleY(1);
            transition: transform 0.8s;
            transform-origin: bottom center;
        }
        .btn{
            display: inline-block;
            margin-bottom: 20px;
            padding: 3px 10px;
            border-radius: 5px;
            background: #999;
        }
    </style>
</head>
<body>

<div class="main">
    <span class="btn" id="btn">测试</span>
    <div class="down">
        contentcontentcontentcontentcontentcontent
    </div>
</div>
<script>
    document.getElementById('btn').addEventListener('click',()=>{
        let element = document.getElementsByClassName('down')[0];
        addClass(element,'active');
    });
    function addClass (element,className) {
        element.className = element.className.indexOf(className)===-1 ? element.className+' '+className : element.className.replace(' active','') ;
    }
</script>
</body>
</html>

 

  • ps:如果使用transform和transition写动画可能会出现文档流的一系列问题,
  •         可以使用脱离文档流的定位(absolute,fixed)来解决这个问题

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值