CSS3实现水波纹效果

CSS3的动画非常强大,但是平时写的并不多,这里,记录一个CSS3实现水波纹的效果

实现代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>水波纹效果</title>
        <style>
            * {
                margin: 0;
                padding: 0;
            }           
            html,
            body {
                height: 100%;
                overflow: hidden;
            }           
            @-webkit-keyframes wateranimate {
                0% {
                    -webkit-transform: scale(0);
                    opacity: 0.5;
                }
                100% {
                    -webkit-transform: scale(2);
                    opacity: 0;
                }
            }
            @keyframes wateranimate {
                0% {
                    -webkit-transform: scale(0);
                    transform: scale(0);
                    opacity: 0.5;
                }
                100% {
                    -webkit-transform: scale(2);
                    transform: scale(2);
                    opacity: 0;
                }
            }           
            .container {
                position: relative;
                width: 500px;
                height: 500px;
                margin: 50px auto;
                border: 1px solid yellow;
            }           
            .water1 {
                -webkit-animation: wateranimate 12s 9s ease-out infinite;
                animation: wateranimate 12s 9s ease-out infinite;
            }           
            .water2 {
                -webkit-animation: wateranimate 12s 6s ease-out infinite;
                animation: wateranimate 12s 6s ease-out infinite;
            }           
            .water3 {
                -webkit-animation: wateranimate 12s 3s ease-out infinite;
                animation: wateranimate 12s 3s ease-out infinite;
            }           
            .water4 {
                -webkit-animation: wateranimate 12s 0s ease-out infinite;
                animation: wateranimate 12s 0s ease-out infinite;
            }           
            .water1, .water2, .water3, .water4 {
                padding: 20%;
                position: absolute;
                left: 30%;
                top: 30%;
                border: 1px solid pink;
                box-shadow: 0 0 120px 30px rgba(235, 31, 137, 1) inset;
                border-radius: 100%;
                z-index: 1;
                opacity: 0;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <div class="water1"></div>
            <div class="water2"></div>
            <div class="water3"></div>
            <div class="water4"></div>
        </div>
    </body>
</html>

为了兼容低版本google浏览器,需要加-webkit-前缀,特别是定义帧动画时,很容易被忽略,@-webkit-keyframes

自适应的宽高相等的div的实现:不设置宽高,直接用百分比的padding填充,(因为百分比都是相对于父级的width)

帧动画超过两帧时,每帧节点出现了停顿,暂时的解决办法:只留两帧

转载于:https://www.cnblogs.com/chaoyueqi/p/10147563.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值