菜单缩放(基于动画transform)

效果预览:
transform_05
实现思路:利用动画的缩放功能transform: scale(x,y)让菜单项元素进行缩放显示。
实现代码:
html

<main>
    <ul>
        <li>
            <strong>my</strong>
            <div>
                <a href="#">me</a>
                <a href="#">mine</a>
                <a href="#">mines</a>
            </div>
        </li>
        <li>
            <strong>goods</strong>
            <div>
                <a href="#">apple</a>
                <a href="#">banner</a>
                <a href="#">berry</a>
            </div>
        </li>
    </ul>
</main>

css

main {
    /*相对页面定位*/
    position: absolute;
    left: 50%;
    top: 50%;
    /*x y轴反向移动使其居中*/
    transform: translate(-50%,-50%);
}

ul {
    list-style-type: none;
    display: flex;
    justify-content: space-evenly;
    width: 400px;
}

ul li {
    position: relative;
}
ul li strong {
    background-color: #95afc0;
    padding: 10px 20px;
    text-align: center;
    text-transform: uppercase;
}

ul li strong+div {
    /*让div子元素从上往下排列*/
    display: flex;
    flex-direction: column;
    padding: 10px 30px;
    /*div元素脱离文档流*/
    position: absolute;
    /*让菜单项缩放从左上开始*/
    transform-origin: left top;
    /*让元素最开始消失*/
    transform: scale(0);
    /*让元素不会遮住strong元素*/
    z-index: -1;
    /*控制显示时间*/
    transition: .6s;
    background-color: #95afc0;
}
ul li strong+div a {
    /*设置a标签样式*/
    display: flex;
    padding: 5px;
    font-size: 1em;
    color: #fff;
    text-decoration: none;
    text-transform: uppercase;
}

ul li:hover strong+div {
    /*让其显示*/
    transform: scale(1);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值