【CSS+JS】设置三个盒子在一个盒子内部的动画交互效果

----------------------------------------------------------效果展示-----------------------------------------------------------

1.思路:

        通过flex弹性布局修改子元素在父元素内的分布情况,因为有元素的部分内容不在父元素之内,除了添加active类的方式控制交互,还需要对添加类的元素进行检查,当检查为最后一个元素的时候控制盒子进行移动(考虑到这点需要在三个子元素之上再添加一个父元素,通过这个父元素来控制他们在盒子内的位移)。

2.代码段:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box1{
            width:400px;
            height:320px;
            margin:80px auto;
            background-color: #5f5e5e;
            border-radius: 20px;
            overflow:hidden ;
        }
        .box1-next{
            width:500px;
            display: flex;
            flex-direction: row;
            flex-wrap:nowrap;
            justify-content: space-around;
            margin-top:120px;
            transition: all 1s;/*控制左右移动动画*/
        }
        .box2{
            border-radius: 10px;
            width: 130px;
            height:170px;
            background-color: #ff6262;
            transition: all 1s;/*控制回落动画*/
        }
        .box1-next .active{
            transform: translateY(-100px);
            transition: all 1s;/*控制上升动画*/
        }
    </style>
</head>
<body>
    <div class="box1">
        <div class="box1-next">
            <div class="box2 active"></div>
            <div class="box2 "></div>
            <div class="box2 "></div>
        </div> 
    </div>
    <script>
        let box1 = document.querySelector('.box1')
        let box2 = document.querySelectorAll('.box2')
        le
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值