CSS实现按钮开门效果
按钮开门效果
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <style> body { height: 100%; padding: 0 24px; margin: 0; color: #515151; background-color: #FFF9F2; overflow: hidden; } main { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); margin: 63px auto; -webkit-transition: -webkit-transform 0.8s 0.61s ease-out; transition: -webkit-transform 0.8s 0.61s ease-out; transition: transform 0.8s 0.61s ease-out; transition: transform 0.8s 0.61s ease-out, -webkit-transform 0.8s 0.61s ease-out; } .hexagon { position: relative; width: 80px; height: 46.19px; margin: auto; background-color: #00B4FF; -webkit-transform: translateZ(0); transform: translateZ(0); z-index: 2; } .hexagon:before, .hexagon:after { content: ""; position: absolute; width: 0; border-left: 40px solid transparent; border-right: 40px solid transparent; } .hexagon:before { bottom: 100%; border-bottom: 23.09px solid #00B4FF; } .hexagon:after { top: 100%; width: 0; border-top: 23.09px solid #00B4FF; } .circle { position: absolute; bottom: -12px; right: -12px; margin: auto; width: 24px; height: 24px; background-color: #515151; border-radius: 100%; z-index: 3; box-shadow: #FFF9F2 0 0 0 4px; } h1 { opacity: 0; position: relative; font-family: "Fredoka One", sans-serif; font-size: 36px; text-align: center; margin: 30px 0 60px; -webkit-transform: translateY(24px); transform: translateY(24px); -webkit-transition: opacity 0s 1.42s ease-out, -webkit-transform 0s 1.42s ease-out; transition: opacity 0s 1.42s ease-out, -webkit-transform 0s 1.42s ease-out; transition: transform 0s 1.42s ease-out, opacity 0s 1.42s ease-out; transition: transform 0s 1.42s ease-out, opacity 0s 1.42s ease-out, -webkit-transform 0s 1.42s ease-out; z-index: 1; } h1 span { color: #00B4FF; } .open h1 { opacity: 1; -webkit-transform: translateY(0); transform: translateY(0); -webkit-transition: opacity 0.6s 0.5s ease-out, -webkit-transform 0.4s 0.5s ease-out; transition: opacity 0.6s 0.5s ease-out, -webkit-transform 0.4s 0.5s ease-out; transition: transform 0.4s 0.5s ease-out, opacity 0.6s 0.5s ease-out; transition: transform 0.4s 0.5s ease-out, opacity 0.6s 0.5s ease-out, -webkit-transform 0.4s 0.5s ease-out; } .panel { position: fixed; width: 50%; height: 100%; background-color: #00B4FF; z-index: 6; visibility: visible; -webkit-transition: opacity 0.8s 0.61s ease-out, -webkit-transform 0.6s ease-in-out; transition: opacity 0.8s 0.61s ease-out, -webkit-transform 0.6s ease-in-out; transition: transform 0.6s ease-in-out, opacity 0.8s 0.61s ease-out; transition: transform 0.6s ease-in-out, opacity 0.8s 0.61s ease-out, -webkit-transform 0.6s ease-in-out; } .panel.left { left: 0; } .panel.left:before { position: absolute; top: 0; right: 0; bottom: 0; margin: auto; content: ''; border-right: 40px solid #FFF9F2; border-top: 23px solid transparent; border-bottom: 23px solid transparent; height: 46px; width: 0; } .panel.right { right: 0; } .panel.right:before { position: absolute; top: 0; left: 0; bottom: 0; margin: auto; content: ''; border-left: 40px solid #FFF9F2; border-top: 23px solid transparent; border-bottom: 23px solid transparent; height: 46px; width: 0; } .panel.right:after { content: ''; position: absolute; top: 0; bottom: -46px; left: 28px; margin: auto; width: 24px; height: 24px; background-color: #FFF9F2; border-radius: 100%; z-index: 3; box-shadow: #00B4FF 0 0 0 4px; } .open .panel { opacity: 0.2; -webkit-transition: opacity 0s 0.61s ease-out, -webkit-transform 0.6s ease-in-out; transition: opacity 0s 0.61s ease-out, -webkit-transform 0.6s ease-in-out; transition: transform 0.6s ease-in-out, opacity 0s 0.61s ease-out; transition: transform 0.6s ease-in-out, opacity 0s 0.61s ease-out, -webkit-transform 0.6s ease-in-out; } .open .panel.left { -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } .open .panel.right { -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } button { cursor: pointer; position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto; width: 80px; height: 80px; color: white; background-color: transparent; padding: 0 24px; font-size: 18px; border: 0; z-index: 6; border-radius: 100%; -webkit-tap-highlight-color: transparent; } button:focus { outline: none; } </style> </head> <body class=""><!-- HTML代码片段中请勿添加<body>标签 //--> <div id="container"> </div> <!-- 推荐开源CDN来选取需引用的外部JS //--> <script type="text/javascript" src="http://cdn.gbtags.com/jquery/1.11.1/jquery.min.js"></script> <main> <div class="hexagon"> <div class="circle"></div> </div> <h1>开门<span>效果</span></h1> </main> <div class="panel left"></div> <div class="panel right"></div> <button></button> <script type="text/javascript"> $('button').on('click', function () { $('body').toggleClass('open'); });</script> </body> </html>
.
相关推荐
sunshineboyleng 2020-07-08
bertzhang 2019-12-14
impress 2020-05-11
yaodilu 2020-04-30
/*垂直居中,div上边界距离窗口上边的距离为窗口高度的50%,并针对不同浏览器进行兼容。-- 在外层添加一个div,把行内容居中,添加.row .justify-content-center -->
Phoebe的学习天地 2020-04-14
福叔 2020-04-11
zjuwangleicn 2020-03-08
冰蝶 2020-03-01
somboy 2020-02-29
zengni 2020-02-23
wangjie 2020-02-22
tianzyc 2020-02-19
冰蝶 2020-02-16
lanzhusiyu 2020-02-03
lanzhusiyu 2020-01-12
MaureenChen 2020-01-01
jiedinghui 2019-12-27
zhanghao 2019-12-20