随着css功能的强大,css已经可以实现越来越多的动画效果了,今天我们就通过css实现一个云朵下雨的特效动画,如下图所示:
<html> <head> <meta charset="UTF-8"> <link rel="apple-touch-icon" type="image/png" href="https://cpwebassets.codepen.io/assets/favicon/apple-touch-icon-5ae1a0698dcc2402e9712f7d01ed509a57814f994c660df9f7a952f3060705ee.png"> <meta name="apple-mobile-web-app-title" content="CodePen"> <link rel="shortcut icon" type="image/x-icon" href="https://cpwebassets.codepen.io/assets/favicon/favicon-aec34940fbc1a6e787974dcd360f2c6b63348d4b1f4e06c77743096d55480f33.ico"> <link rel="mask-icon" type="image/x-icon" href="https://cpwebassets.codepen.io/assets/favicon/logo-pin-8f3771b1072e3c38bd662872f6b673a722f4b3ca2421637d5596661b4e2132cc.svg" color="#111"> <title>css实现云朵下雨特效动画www.woaidaogu.com</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css"> <style> div { position: absolute; width: 3px; height: 6px; top: 30%; left: 50%; border-radius: 50%; -webkit-animation: rainy_rain 0.7s infinite linear; animation: rainy_rain 0.7s infinite linear; } div:before { content: ""; color: #333; position: absolute; height: 50px; width: 50px; top: 30px; left: -40px; background: #ccc; transform: translate(-50%, -50%); border-radius: 50%; box-shadow: #ccc 65px -15px 0 -5px, #ccc 25px -25px, #ccc 30px 10px, #ccc 60px 15px 0 -10px, #ccc 85px 5px 0 -5px; -webkit-animation: cloudy 5s ease-in-out infinite; animation: cloudy 5s ease-in-out infinite; } div:after { content: ""; position: absolute; top: 120px; left: 50%; height: 15px; width: 120px; background: rgba(0, 0, 0, 0.5); border-radius: 50%; transform: translate(-50%, -50%); -webkit-animation: cloudy_shadow 5s ease-in-out infinite; animation: cloudy_shadow 5s ease-in-out infinite; } @-webkit-keyframes cloudy { 50% { transform: translate(-50%, -70%); } 100% { transform: translate(-50%, -50%); } } @keyframes cloudy { 50% { transform: translate(-50%, -70%); } 100% { transform: translate(-50%, -50%); } } @-webkit-keyframes cloudy_shadow { 50% { transform: translate(-50%, -50%) scale(0.8); background: rgba(0, 0, 0, 0.2); } 100% { transform: translate(-50%, -50%) scale(1); background: rgba(0, 0, 0, 0.5); } } @keyframes cloudy_shadow { 50% { transform: translate(-50%, -50%) scale(0.8); background: rgba(0, 0, 0, 0.2); } 100% { transform: translate(-50%, -50%) scale(1); background: rgba(0, 0, 0, 0.5); } } @-webkit-keyframes rainy_rain { 0% { box-shadow: rgba(0, 0, 0, 0) -10px 30px, rgba(0, 0, 0, 0) 40px 40px, rgba(0, 0, 0, 0.3) -50px 75px, rgba(0, 0, 0, 0.3) 55px 50px, rgba(0, 0, 0, 0.3) -18px 100px, rgba(0, 0, 0, 0.3) 12px 95px, rgba(0, 0, 0, 0.3) -31px 45px, rgba(0, 0, 0, 0.3) 30px 35px; } 25% { box-shadow: rgba(0, 0, 0, 0.3) -10px 45px, rgba(0, 0, 0, 0.3) 40px 60px, rgba(0, 0, 0, 0.3) -50px 90px, rgba(0, 0, 0, 0.3) 55px 65px, rgba(0, 0, 0, 0) -18px 120px, rgba(0, 0, 0, 0) 12px 120px, rgba(0, 0, 0, 0.3) -31px 70px, rgba(0, 0, 0, 0.3) 30px 60px; } 26% { box-shadow: rgba(0, 0, 0, 0.3) -10px 45px, rgba(0, 0, 0, 0.3) 40px 60px, rgba(0, 0, 0, 0.3) -50px 90px, rgba(0, 0, 0, 0.3) 55px 65px, rgba(0, 0, 0, 0) -18px 40px, rgba(0, 0, 0, 0) 12px 20px, rgba(0, 0, 0, 0.3) -31px 70px, rgba(0, 0, 0, 0.3) 30px 60px; } 50% { box-shadow: rgba(0, 0, 0, 0.3) -10px 70px, rgba(0, 0, 0, 0.3) 40px 80px, rgba(0, 0, 0, 0) -50px 100px, rgba(0, 0, 0, 0.3) 55px 80px, rgba(0, 0, 0, 0.3) -18px 60px, rgba(0, 0, 0, 0.3) 12px 45px, rgba(0, 0, 0, 0.3) -31px 95px, rgba(0, 0, 0, 0.3) 30px 85px; } 51% { box-shadow: rgba(0, 0, 0, 0.3) -10px 70px, rgba(0, 0, 0, 0.3) 40px 80px, rgba(0, 0, 0, 0) -50px 45px, rgba(0, 0, 0, 0.3) 55px 80px, rgba(0, 0, 0, 0.3) -18px 60px, rgba(0, 0, 0, 0.3) 12px 45px, rgba(0, 0, 0, 0.3) -31px 95px, rgba(0, 0, 0, 0.3) 30px 85px; } 75% { box-shadow: rgba(0, 0, 0, 0.3) -10px 95px, rgba(0, 0, 0, 0.3) 40px 100px, rgba(0, 0, 0, 0.3) -50px 60px, rgba(0, 0, 0, 0) 55px 95px, rgba(0, 0, 0, 0.3) -18px 80px, rgba(0, 0, 0, 0.3) 12px 70px, rgba(0, 0, 0, 0) -31px 120px, rgba(0, 0, 0, 0) 30px 110px; } 76% { box-shadow: rgba(0, 0, 0, 0.3) -10px 95px, rgba(0, 0, 0, 0.3) 40px 100px, rgba(0, 0, 0, 0.3) -50px 60px, rgba(0, 0, 0, 0) 55px 35px, rgba(0, 0, 0, 0.3) -18px 80px, rgba(0, 0, 0, 0.3) 12px 70px, rgba(0, 0, 0, 0) -31px 25px, rgba(0, 0, 0, 0) 30px 15px; } 100% { box-shadow: rgba(0, 0, 0, 0) -10px 120px, rgba(0, 0, 0, 0) 40px 120px, rgba(0, 0, 0, 0.3) -50px 75px, rgba(0, 0, 0, 0.3) 55px 50px, rgba(0, 0, 0, 0.3) -18px 100px, rgba(0, 0, 0, 0.3) 12px 95px, rgba(0, 0, 0, 0.3) -31px 45px, rgba(0, 0, 0, 0.3) 30px 35px; } } @keyframes rainy_rain { 0% { box-shadow: rgba(0, 0, 0, 0) -10px 30px, rgba(0, 0, 0, 0) 40px 40px, rgba(0, 0, 0, 0.3) -50px 75px, rgba(0, 0, 0, 0.3) 55px 50px, rgba(0, 0, 0, 0.3) -18px 100px, rgba(0, 0, 0, 0.3) 12px 95px, rgba(0, 0, 0, 0.3) -31px 45px, rgba(0, 0, 0, 0.3) 30px 35px; } 25% { box-shadow: rgba(0, 0, 0, 0.3) -10px 45px, rgba(0, 0, 0, 0.3) 40px 60px, rgba(0, 0, 0, 0.3) -50px 90px, rgba(0, 0, 0, 0.3) 55px 65px, rgba(0, 0, 0, 0) -18px 120px, rgba(0, 0, 0, 0) 12px 120px, rgba(0, 0, 0, 0.3) -31px 70px, rgba(0, 0, 0, 0.3) 30px 60px; } 26% { box-shadow: rgba(0, 0, 0, 0.3) -10px 45px, rgba(0, 0, 0, 0.3) 40px 60px, rgba(0, 0, 0, 0.3) -50px 90px, rgba(0, 0, 0, 0.3) 55px 65px, rgba(0, 0, 0, 0) -18px 40px, rgba(0, 0, 0, 0) 12px 20px, rgba(0, 0, 0, 0.3) -31px 70px, rgba(0, 0, 0, 0.3) 30px 60px; } 50% { box-shadow: rgba(0, 0, 0, 0.3) -10px 70px, rgba(0, 0, 0, 0.3) 40px 80px, rgba(0, 0, 0, 0) -50px 100px, rgba(0, 0, 0, 0.3) 55px 80px, rgba(0, 0, 0, 0.3) -18px 60px, rgba(0, 0, 0, 0.3) 12px 45px, rgba(0, 0, 0, 0.3) -31px 95px, rgba(0, 0, 0, 0.3) 30px 85px; } 51% { box-shadow: rgba(0, 0, 0, 0.3) -10px 70px, rgba(0, 0, 0, 0.3) 40px 80px, rgba(0, 0, 0, 0) -50px 45px, rgba(0, 0, 0, 0.3) 55px 80px, rgba(0, 0, 0, 0.3) -18px 60px, rgba(0, 0, 0, 0.3) 12px 45px, rgba(0, 0, 0, 0.3) -31px 95px, rgba(0, 0, 0, 0.3) 30px 85px; } 75% { box-shadow: rgba(0, 0, 0, 0.3) -10px 95px, rgba(0, 0, 0, 0.3) 40px 100px, rgba(0, 0, 0, 0.3) -50px 60px, rgba(0, 0, 0, 0) 55px 95px, rgba(0, 0, 0, 0.3) -18px 80px, rgba(0, 0, 0, 0.3) 12px 70px, rgba(0, 0, 0, 0) -31px 120px, rgba(0, 0, 0, 0) 30px 110px; } 76% { box-shadow: rgba(0, 0, 0, 0.3) -10px 95px, rgba(0, 0, 0, 0.3) 40px 100px, rgba(0, 0, 0, 0.3) -50px 60px, rgba(0, 0, 0, 0) 55px 35px, rgba(0, 0, 0, 0.3) -18px 80px, rgba(0, 0, 0, 0.3) 12px 70px, rgba(0, 0, 0, 0) -31px 25px, rgba(0, 0, 0, 0) 30px 15px; } 100% { box-shadow: rgba(0, 0, 0, 0) -10px 120px, rgba(0, 0, 0, 0) 40px 120px, rgba(0, 0, 0, 0.3) -50px 75px, rgba(0, 0, 0, 0.3) 55px 50px, rgba(0, 0, 0, 0.3) -18px 100px, rgba(0, 0, 0, 0.3) 12px 95px, rgba(0, 0, 0, 0.3) -31px 45px, rgba(0, 0, 0, 0.3) 30px 35px; } } </style> <script> window.console = window.console || function (t) { }; </script> <script> if (document.location.search.match(/type=embed/gi)) { window.parent.postMessage("resize", "*"); } </script> </head> <body translate="no"> <div></div> <div id="xl_chrome_ext_{4DB361DE-01F7-4376-B494-639E489D19ED}" style="display: none;"> <div></div> <a id="xl_chrome_ext_download" href="javascript:;">下载视频</a> <a id="xl_chrome_ext_close" href="javascript:;"></a> </div> </body> </html>
通过以上内容我们知道了css如何实现云朵下雨特效动画?感谢您访问“我爱捣鼓(www.woaidaogu.com)”网站的内容,希望对大家有所帮助!引用本文内容时,请注明出处!谢谢合作!