最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

HTML5SVG带圆形进度条动画的提交按钮特效

来源:懂视网 责编:小采 时间:2020-11-27 15:16:51
文档

HTML5SVG带圆形进度条动画的提交按钮特效

HTML5SVG带圆形进度条动画的提交按钮特效:简要教程这是一款非常实用的HTML5 SVG带圆形进度条动画的提交按钮特效。该提交按钮在被点击之后,按钮变形为一个圆形的进度条,当进度条运行一周之后,可以设置提交成功和提交失败的两种按钮状态。 制作方法 HTML结构制作这个提交按钮特效的HTML结构需要一
推荐度:
导读HTML5SVG带圆形进度条动画的提交按钮特效:简要教程这是一款非常实用的HTML5 SVG带圆形进度条动画的提交按钮特效。该提交按钮在被点击之后,按钮变形为一个圆形的进度条,当进度条运行一周之后,可以设置提交成功和提交失败的两种按钮状态。 制作方法 HTML结构制作这个提交按钮特效的HTML结构需要一

简要教程

这是一款非常实用的HTML5 SVG带圆形进度条动画的提交按钮特效。该提交按钮在被点击之后,按钮变形为一个圆形的进度条,当进度条运行一周之后,可以设置提交成功和提交失败的两种按钮状态。

制作方法

HTML结构

制作这个提交按钮特效的HTML结构需要一个包裹容器,里面有一个提交按钮和三个<svg>元素。

<div id="progress-button" class="progress-button">
 <!-- 提交按钮 -->
 <button><span>Submit</span></button>
 
 <!-- svg 圆形进度条 -->
 <svg class="progress-circle" width="70" height="70">
 <path d="m35,2.5c17.955803,0 32.5,14.544199 32.5,32.5c0,17.955803 -14.544197,32.5 -32.5,32.5c-17.955803,
 0 -32.5,-14.544197 -32.5,-32.5c0,-17.955801 14.544197,-32.5 32.5,-32.5z"/>
 </svg>
 
 <!-- 提交成功的标记 -->
 <svg class="checkmark" width="70" height="70">
 <path d="m31.5,46.5l15.3,-23.2"/>
 <path d="m31.5,46.5l-8.5,-7.1"/>
 </svg>
 
 <!-- 提交失败的标记 -->
 <svg class="cross" width="70" height="70">
 <path d="m35,35l-9.3,-9.3"/>
 <path d="m35,35l9.3,9.3"/>
 <path d="m35,35l-9.3,9.3"/>
 <path d="m35,35l9.3,-9.3"/>
 </svg>
</div>

CSS样式

首先提交按钮容器需要设置为inline-block样式。

.progress-button {
 position: relative;
 display: inline-block;
 text-align: center;
}

然后在为提交按钮提供一些基本样式,并设置过渡动画效果。

.progress-button button {
 display: block;
 margin: 0 auto;
 padding: 0;
 width: 250px;
 height: 70px;
 border: 2px solid #1ECD97;
 border-radius: 40px;
 background: transparent;
 color: #1ECD97;
 letter-spacing: 1px;
 font-size: 18px;
 font-family: 'Montserrat', sans-serif;
 -webkit-transition: background-color 0.3s, 
 color 0.3s, width 0.3s, 
 border-width 0.3s, 
 border-color 0.3s;
 transition: background-color 0.3s, 
 color 0.3s, width 0.3s, 
 border-width 0.3s, 
 border-color 0.3s;
}

在鼠标滑过提交按钮的时候,修改按钮的背景颜色和文字颜色。

.progress-button button:hover {
 background-color: #1ECD97;
 color: #fff;
}

所有的SVG元素都采用绝对定位方式来居中对齐,并且不允许有任何的pointer-events。

.progress-button svg {
 position: absolute;
 top: 0;
 left: 50%;
 -webkit-transform: translateX(-50%);
 transform: translateX(-50%);
 pointer-events: none;
}

SVG的路径没有任何的填充色,只有描边。开始的时候它们是被隐藏起来的,透明度被设置为0。

.progress-button svg path {
 opacity: 0;
 fill: none;
}

圆形进度条通过设置描边为5个单位来创建。

.progress-button svg.progress-circle path {
 stroke: #1ECD97;
 stroke-width: 5;
}

当开始loading线程的时候,按钮会变形为圆形,和圆形进度条相同的大小。

.loading.progress-button button {
 width: 70px; /* 制作一个圆形 */
 border-width: 5px;
 border-color: #ddd;
 background-color: transparent;
 color: #fff;
}

变为圆形后,调教按钮上的文字要快速隐藏起来。

.loading.progress-button span {
 -webkit-transition: opacity 0.15s;
 transition: opacity 0.15s;
}
.loading.progress-button span,
.success.progress-button span,
.error.progress-button span {
 opacity: 0; /* keep it hidden in all states */
}

JAVASCRIPT

在javascript代码中,button是HTML元素,progressEl是SVG元素,它是代表圆形的进度条。successEl和errorEl分别代表提交成功和失败的标记,也是SVG元素。js代码中通过UIProgressButton()方法来初始化这个提交按钮特效。

function UIProgressButton( el, options ) {
 this.el = el;
 this.options = extend( {}, this.options );
 extend( this.options, options );
 this._init();
}
 
UIProgressButton.prototype._init = function() {
 this.button = this.el.querySelector( 'button' );
 this.progressEl = new SVGEl( this.el.querySelector( 'svg.progress-circle' ) );
 this.successEl = new SVGEl( this.el.querySelector( 'svg.checkmark' ) );
 this.errorEl = new SVGEl( this.el.querySelector( 'svg.cross' ) );
 // init events
 this._initEvents();
 // enable button
 this._enable();
}

其它js代码请参考下载文件。

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

HTML5SVG带圆形进度条动画的提交按钮特效

HTML5SVG带圆形进度条动画的提交按钮特效:简要教程这是一款非常实用的HTML5 SVG带圆形进度条动画的提交按钮特效。该提交按钮在被点击之后,按钮变形为一个圆形的进度条,当进度条运行一周之后,可以设置提交成功和提交失败的两种按钮状态。 制作方法 HTML结构制作这个提交按钮特效的HTML结构需要一
推荐度:
标签: 进度条 效果 按钮
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top