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