当前位置: 首页 > news >正文

基于TweenMax和SVG的炫酷弹性进度条动画特效

这是一款效果非常炫酷的基于TweenMax和SVG的炫酷弹性进度条动画特效。该弹性进度条特效在点击触发按钮之后,按钮会变形为进度条,然后一个滑块在它上面滑动,就像重物滑过绳子的感觉,非常有创意。

在线演示

 使用方法

该弹性进度条效果需要GSAP的支持,还要引入lastic-progress.min.js文件。

<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.18.0/TweenMax.min.js"></script>

<script src="path/to/js/elastic-progress.min.js"></script>  

 HTML结构

可以使用一个<div>元素来作为按钮。

<div class="Upload" role="button" aria-label="Upload file"></div>       

这里使用带role="button"<div>元素来作为按钮,而不是直接使用一个<button>元素的原因是,根据W3C规范的建议,按钮元素不应该有交互元素。

 JavaScript

可以通过纯JS来初始化该弹性进度条插件。

var element=document.querySelector('.Upload');

var progress=new ElasticProgress(element, { /*options*/ });



// 或者...



var progress=new ElasticProgress('.Upload', { /*options*/}); 

也可以通过jQuery来初始化该弹性进度条插件。

$('.Upload').ElasticProgress({/*options*/});               

 配置参数

配置参数设置在构造函数上,类似下面的样子:

var progress=new ElasticProgress('.Upload', {

  colorFg:"#FF0000",

  buttonSize:80,

  //...

})  
 可用参数
  • arrowDirection:类型:string。箭头的方向,可取值有:'up''down'。默认值为'down'
  • colorFgcolorBg:类型:string。前景(箭头和进度条过滤部分)的颜色和背景(圆形,整个进度条背景),默认值为白色和黑色。
  • highlightColor:类型:string。边框高亮的颜色,默认值为#08F
  • background:类型:string。“弹出”动画时遮罩层的颜色。默认为body的背景色。
  • buttonSize:类型:number。圆形按钮的大小。默认值为元素的高度。
  • width:类型:number。进度条扩展的宽度。默认值为元素的宽度。/li>
  • labelHeight:类型:number。标签的高度,单位像素,默认值53。
  • barHeight:类型:number。进度条的厚度,默认值为4。
  • barInset:类型:number。进度条的填充部分,默认值为-0.5。
  • bleedTopbleedRightbleedLeftbleedBottom:类型:number。图形的margin值。默认为100, 50, 50 和 60。
  • fontFamily:类型:string。标签上的字体。默认值为'Helvetica Neue','Helvetica','Arial',sans-serif
  • fontWeight:类型:string。默认值为'bold'
  • textCompletetextFailtextCancel:类型:string。在以上事件中显示的文本。默认值分别为:'Done''Failed''Canceled'
  • barStretch:类型:number。进度条拉伸的最大距离。默认为20。
  • jumpHeight:类型:number。箭头和标签跳动的距离。默认为50。
  • barElasticOvershootbarElasticPeriod:类型:number。弹性动画的设置。默认值为1.8和0.15。
  • labelWobbliness:类型:number。在进度条动画期间标签的动画设置。默认为40。
  • arrowHangOnFailarrowHangOnCancel:类型:boolean。设置在这2个事件中箭头是否会“跌落”下来。默认值都是true

 事件

按钮本身没有任何操作。你可以通过下面的事件来控制按钮的行为。

var progress=new ElasticProgress('.Upload', {

  // ...

  onClick:function(){

    progress.open();

  }

});

function theFunctionYouAreUsingToCheckProgress(){

  // ...

  progress.set(value);

}





// 通过jQuery

$(".Upload").ElasticProgress({

  // ...

  onClick:function(){

    $(this).ElasticProgress('open');

  }

});



function theFunctionYouAreUsingToCheckProgress(){

  // ...

  $(".Upload").ElasticProgress('set',value);

} 

 可用事件
  • onClick:类型:function。在用户点击按钮时触发。
  • onOpen:类型:function。当进度条完成打开动画时触发。
  • onChange:类型:function。当进度条的值发生改变时触发。
  • onComplete:类型:function。当进度条结束时触发。
  • onClose:类型:function。当关闭动画结束时触发。
  • onFail:类型:function。当“失败”动画开始时触发。
  • onCancel:类型:function。当取消动画开始时触发。

 方法

  • open():开始打开动画(将按钮转换为进度条)。
  • close():将进度条转换为按钮。
  • setValue(value number):设置进度条值的百分比,0-1。
  • getValue() :返回当前进度条的值。
  • fail()cancel():执行“失败”和“取消”动画。
  • complete():执行“完成”动画。可以使用setValue(1)来替代它。
  • onClick(callbackfunction)onOpen(callbackfunction)onChange(callbackfunction)
    onComplete(callbackfunction)onClose(callbackfunction)onFail(callbackfunction)
    onCancel(callbackfunction):相同名称参数的别名。

相关文章:

  • [实操]MySQL8 读写分离后,配合redis的方法与步骤
  • 水星(MERCURY)监控初始化的恢复和转码方法
  • 【C语言】多进程/多线程
  • DeepSeek-R1 现已作为全托管无服务器模型在 Amazon Bedrock上线。
  • 反向 SSH 隧道技术实现内网穿透
  • 数据库误更新操作 如何回滚
  • VMware安装ubuntu22.04.5 server
  • Java并发编程面试汇总
  • Python学习第二十三天
  • 全面了解 Cookies、Session 和 Token
  • 【Java语言】学习笔记-08面向对象【中级】包、访问修饰符、封装、继承、多态、Super、Override(重写)、Object、断点调试等细节详解(上)
  • 6.1、认证技术基础与原理
  • [unity 点击事件] 区域响应点击事件,排除子节点区域,Raycast Target 应用
  • 埋点数据采集方案
  • 14、Python 枚举与类型注解进阶
  • 蓝桥云客 数字接龙
  • JAVA 单调栈习题解析
  • 入剖析 Android Compose 框架的关键帧动画(keyframes、Animatable)(二十三)
  • 蓝耘云平台免费 Token 获取攻略:让创作成本直线下降 - 极致优化版
  • Maven 构建配置文件
  • 国内多景区实行一票游多日:从门票经济向多元化“链式经济”转型
  • 一代名伶程砚秋经典影像:一箱旧影,芳华满堂
  • 魔都眼|西岸国际咖啡生活节:连接艺术、音乐与宠物
  • 即日起,“应急使命·2025”演习公开征集新质救援能力
  • 近七成科创板公司2024年营收增长,285家营收创历史新高
  • 奔驰一季度利润降四成,受美国加征关税影响放弃全年盈利展望