js+svg实现一个按钮提交动画操作反馈效果代码
代码语言:html
所属分类:表单美化
代码描述:js+svg实现一个按钮提交动画操作反馈效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!doctype html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> body { font-family: Avenir,'Helvetica Neue', 'Lato', 'Segoe UI', Helvetica, Arial, sans-serif; color: #eee; background-color: #323232; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } a { color: rgba(255, 255, 255, 0.8); text-decoration: none; border-bottom: 1px solid transparent; -webkit-transition: 0.3s; transition: 0.3s; } a:hover { color: #fff; border-bottom-color: #fff; } .container { text-align: center; } h1.demo-title { position: relative; display: inline-block; margin: 50px 0 0; } h1.demo-title:before, h1.demo-title:after { content: ''; position: absolute; top: 50%; width: 30px; height: 1px; background-color: rgba(255, 255, 255, 0.8); } h1.demo-title:before { left: -50px; } h1.demo-title:after { right: -50px; } .demo-subtitle { margin: 5px 0 40px; color: rgba(255, 255, 255, 0.4); } .description { color: rgba(255, 255, 255, 0.7); } .showcase { position: relative; display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center; margin-top: 50px; } .showcase button { position: relative; display: inline-block; min-width: 160px; border: none; background-color: #3A9AD9; color: #ffffff; letter-spacing: 1px; text-transform: uppercase; cursor: pointer; padding: 10px 20px; margin: 0 10px; border-radius: 2px; -webkit-transition: 0.3s; transition: 0.3s; } .showcase button:not([disabled]):hover { background-color: #4fa7dd; } .showcase button.bordered { background-color: transparent; border: 2px solid #3A9AD9; padding: 8px 0; } .showcase button.bordered:not([disabled]):hover { background-color: #3A9AD9; border-color: transparent; } .showcase button.control-button { width: 170px; font-size: 13px; visibility: hidden; opacity: 0; -webkit-transition: 0.5s 0s opacity, 0.1s visibility; transition: 0.5s 0s opacity, 0.1s visibility; } .showcase button.control-button.show-control { visibility: visible; opacity: 1; -webkit-transition: 0.5s 0.4s opacity, 0.3s background, 0.3s border; transition: 0.5s 0.4s opacity, 0.3s background, 0.3s border; } .showcase button.control-button.make-it-fail { border-color: #EB7260; } .showcase button.control-button.make-it-fail:hover { background-color: #EB7260; } .showcase button.control-button.make-it-succeed { border-color: #29ABA4; } .showcase button.control-button.make-it-succeed:hover { background-color: #29ABA4; } .loading-button.open-loading { color: rgba(255, 255, 255, 0.8); } .loading-button.open-loading.infinity { padding-top: 80px; } .loading-button.open-loading svg { display: inline-block; visibility: visible; opacity: 1; -webkit-transition: 1s opacity; transition: 1s opacity; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); } .loading-button.failed { background-color: #EB7260; } .loading-button.succeed { background-color: #29ABA4; } .loading-button.no-transition { -webkit-transition: 0s; transition: 0s; } .loading-button.no-transition * { -webkit-transition: 0s; transition: 0s; } .loading-button svg { visibility: hidden; position: absolute; left: 50%; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); opacity: 0; -webkit-transition: 0s; transition: 0s; } .loading-button svg path { stroke-linecap: round; stroke-linejoin: round; stroke-width: 4; fill: none; } .loading-button svg path.success-path, .loading-button svg path.error-path, .loading-button svg path.error-path2 { visibility: hidden; } .loading-button.top svg { top: 10px; } .loading-button.bottom svg { bottom: 10px; } .loading-button.left svg { top: 50%; -webkit-transform: scale(0.25) translateY(-50%); -ms-transform: scale(0.25) translateY(-50%); transform: scale(0.25) translateY(-50%); -webkit-transform-origin: 0 0 0; -ms-transform-origin: 0 0 0; transform-origin: 0 0 0; left: 20px; } .loading-button.right svg { top: 50%; -webkit-transform: scale(0.25) translateY(-50%); -ms-transform: scale(0.25) translateY(-50%); transform: scale(0.25) translateY(-50%); -webkit-transform-origin: 100% 0 0; -ms-transform-origin: 100% 0 0; transform-origin: 100% 0 0; left: auto; right: 20px; } .loading-button.open-loading.left { padding-left: 60px; } .loading-button.open-loading.right { padding-right: 60px; } .loading-button.open-loading.top svg, .loading-button.open-loading.bottom svg { -webkit-transition-delay: 0.2s; transition-delay: 0.2s; } .loading-button.open-loading.circular-loading.top, .loading-button.open-loading.circle-loading.top { padding-top: 140px; } .loading-button.open-loading.circular-loading.bottom, .loading-button.open-loading.circle-loading.bottom { padding-bottom: 140px; } .loading-button.open-loading.infinity-loading.top { padding-top: 80px; } .loading-button.open-loading.infinity-loading.bottom { padding-bottom: 80px; } .loading-options { text-align: center; } .loading-options > div { display: inline-block; width: 40%; cursor: default; } .loading-options label { display: inline-block; margin: 0 5px; cursor: pointer; } .loading-options label input { display: none; } .loading-options label input:checked + span { background-color: rgba(0, 0, 0, 0.5); } .loading-options label span { display: inline-block; padding: 5px 10px; font-size: 13px; letter-spacing: 1px; text-transform: uppercase; border-radius: 2px; background-color: rgba(0, 0, 0, 0.3); } .circle-loading circle { visibility: hidden; opacity: 0; -webkit-transition: 0.5s; transition: 0.5s; } .circle-loading.show-circles circle { visibility: visible; opacity: 1; } </style> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/classie.js"></script> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/segment.js"></script> </head> <body> <section class="container"> <div class="container"> <h1 class="demo-title">Loading Buttons</h1> <div class="description"> Just press the Send button and then make it fail or succeed </div> <div class="description"> Also play with all the possible loaders and positions </div> <div class="showcase main-showcase"> <button class="control-button bordered make-it-fail">让它失败</button> <button class="loading-button circular-loading top">Send</button> <button class="control-button bordered make-it-succeed">让它成功</button> </div> <div class="loading-options"> <div class="loaders"> <h2>Loaders</h2> <label> <input type="radio" name="loaders" value="circular-loading" checked="checked" /> <span>circular</span> </label> <label> <input type="radio" name="loaders" value="circle-loading" /> <span>circle</span> </label> <label> <input type=&q.........完整代码请登录后点击上方下载按钮下载查看
网友评论0