前端实现 海浪(波浪)进度条效果(支持自定义长度;调节速度,2s缓冲结束)

实现海浪进度条


文章目录

  • 实现海浪进度条
  • 效果图如下(投入使用的版本)
  • 背景和过程
  • 一、调试和探索过程(下面都会给出来对应代码)
  • 二、类似Element-plus的进度条样式
    • 1. CSS的样式如下
    • 2. HTML结构如下
  • 二、电涌效果的进度条如下
    • 1. CSS的样式如下
    • 2. HTML的结构如下:
    • 3. JavaScript代码如下
  • 三、波浪效果的进度条
    • 1. CSS的结构如下:
    • 2. HTML的结构如下:
  • 四、海浪效果的进度条(等我空闲就上传代码!!!!)
  • 总结


效果图如下(投入使用的版本)

效果图如下

背景和过程

提示:这个功能的开发过程真的是一波三折

  1. 自信阶段: 此时我觉得这个动画,实现就还挺简单的,就估1-2天
  2. 准备CV阶段: 开始在网上找有没有相同的例子网上给我的答案是:没有这种例子
  3. 方案确定阶段: ①.使用css样式画出来 ; ②. 使用动态的图片(大多数解决是这种方案,但是图片的长度变更会有问题) ; ③: 使用canvas绘制(如果不是经常使用的话,上手绘制学习成本高) ; ④. 自己通过div盒子自己绘制(哈哈哈,这种我直接否定了,感觉跟动态图片的实现方式一样有点cun)
  4. 迷茫阶段: 测试了大量例子,发现好像并不是很简单!! oh , my God !!!!!!!!
  5. 摸索阶段: 测试大量的进度条案例
  6. 成功阶段: 经过哥们,断断续续的调试,终于是得到了两个还原度100%的版本

一、调试和探索过程(下面都会给出来对应代码)

  1. 类似Element-plus动态进度条的实现效果

请添加图片描述

  1. 常规电涌效果的进度条

请添加图片描述
在这里插入图片描述

  1. 常见类似波浪的进度条

在这里插入图片描述
在这里插入图片描述

最终模拟波浪效果的进度条

在这里插入图片描述

可以封装的进度条

在这里插入图片描述

二、类似Element-plus的进度条样式

1. CSS的样式如下

    <style>/* styles.css */body {display: flex;justify-content: center;align-items: center;height: 100vh;background-color: #f0f0f0;margin: 0;}.progress-bar-container {width: 80%;max-width: 600px;}.progress-bar {background-color: #bcbdc0;border-radius: 10px;overflow: hidden;position: relative;height: 30px;}.progress-bar-striped {height: 100%;background: linear-gradient(45deg,rgba(247, 59, 59, 0.15) 25%,transparent 25%,transparent 50%,rgba(157, 15, 15, 0.15) 50%,rgba(71, 7, 7, 0.15) 75%,transparent 75%,transparent);background-size: 1rem 1rem;position: relative;animation: progress-bar-stripes 1s linear infinite;}.icon{position: absolute;height: 100%;line-height: 200%;right: 0px;border-radius: 100%;background-color: aquamarine;}@keyframes progress-bar-stripes {from {background-position: 3rem 0;}to {background-position: 0 0;}}</style>

2. HTML结构如下

    <div class="progress-bar-container"><div class="progress-bar"><div class="progress-bar-striped" style="width: 70%;"><div class="icon">1</div></div></div></div>

二、电涌效果的进度条如下

1. CSS的样式如下

    <style>/* styles.css */body {display: flex;justify-content: center;align-items: center;height: 100vh;background-color: #f0f0f0;margin: 0;}.progress-bar {position: relative;background-color: #e0e0e0;border-radius: 10px;overflow: hidden;height: 30px;min-width: 200px;/* Minimum width */width: auto;/* Automatically adjust width */}.progress-bar-inner {height: 100%;background-size: 1rem 1rem;animation: progress-bar-stripes 1s linear infinite;}@keyframes progress-bar-stripes {from {background-position: 0 0;}to {background-position: 200px 0;}}.progress-icon {position: absolute;top: 50%;left: -10px;transform: translate(0, -50%);font-size: 20px;display: flex;align-items: center;}</style>

2. HTML的结构如下:

   <div id="progress-bar-container"></div>

3. JavaScript代码如下

    // script.jsfunction createProgressBar(containerId, percentage, options = {}) {const container = document.getElementById(containerId);const defaultOptions = {gradientColors: ['#6a11cb', '#2575fc'],icon: '🔥',};const settings = { ...defaultOptions, ...options };const progressBar = document.createElement('div');progressBar.className = 'progress-bar';const progressBarInner = document.createElement('div');progressBarInner.className = 'progress-bar-inner';progressBarInner.style.width = `${percentage}%`;progressBarInner.style.background = `linear-gradient(to right, ${settings.gradientColors.join(', ')})`;const progressIcon = document.createElement('div');progressIcon.className = 'progress-icon';progressIcon.innerHTML = settings.icon;progressIcon.style.left = `${percentage}%`;progressBar.appendChild(progressBarInner);progressBar.appendChild(progressIcon);container.innerHTML = '';container.appendChild(progressBar);}createProgressBar('progress-bar-container', 95);

三、波浪效果的进度条

1. CSS的结构如下:

    <style>body {display: flex;justify-content: center;align-items: center;height: 100vh;margin: 0;background: #f0f0f0;}.progress-container {width: 80%;height: 50px;background: #e0e0e0;border-radius: 25px;overflow: hidden;position: relative;}.progress-bar {width: 100%;height: 100%;position: relative;overflow: hidden;}.wave {position: absolute;top: 0;left: 0;width: 200%;height: 100%;background: linear-gradient(90deg, #0099ff, #00ccff);animation: wave 4s infinite linear;clip-path: url(#waveClipPath);}@keyframes wave {0% {transform: translateX(0);}100% {transform: translateX(-50%);}}</style>

2. HTML的结构如下:

<div class="progress-container"><div class="progress-bar"><div class="wave"></div></div></div><svg width="0" height="0"><defs><clipPath id="waveClipPath" clipPathUnits="objectBoundingBox"><path d="M0,0.5 C0.2,0.8 0.4,0.2 0.6,0.5 C0.8,0.8 1,0.2 1,0.5 L1,1 L0,1 Z"></path></clipPath></defs></svg>

四、海浪效果的进度条(等我空闲就上传代码!!!)


总结

目前还没有更新完毕,有时间更新后面的真实样式!!!
代码很少!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/36368.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

推荐两款电脑文件处理工具,强大到你不舍得卸载

EasyFileCount EasyFileCount是一款基于Java开发的多功能文件管理工具&#xff0c;旨在帮助用户更轻松地管理和优化他们的文件存储。以下是EasyFileCount的主要功能和特点&#xff1a; 查看文件夹大小&#xff1a;用户可以快速统计和查看文件夹的总大小&#xff0c;实时显示各…

40.设计HOOK引擎的好处

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 上一个内容&#xff1a;39.右键弹出菜单管理游戏列表 以 39.右键弹出菜单管理游戏列表 它的代码为基础进行修改 效果图&#xff1a; 实现步骤&#xff1a; 首…

【海思Hi3403V100】多目拼接相机套板硬件规划方案

海思Hi3403V100 是专业超高清智能网络摄像头 SoC。该芯片最高支持四路 sensor 输入&#xff0c;支持最高 4K60fps 的 ISP 图像处理能力&#xff0c;支持 3F 、WDR、多级降噪、六轴防抖、硬件拼接、多光谱融合等多种传统图像增强和处理算法&#xff0c;支持通过AI 算法对输入图像…

视觉灵感的探索和分享平台

做设计没灵感&#xff1f;大脑一片空白&#xff1f;灵感是创作的源泉&#xff0c;也是作品的灵魂所在。工作中缺少灵感&#xff0c;这是每个设计师都会经历的苦恼&#xff0c;那当我们灵感匮乏的时候&#xff0c;该怎么办呢&#xff1f;别急&#xff0c;即时设计、SurfCG、Lapa…

基于sivaco设计仿真PT型IGBT和NPT型IGBT结构

本项目基于使用仿真软件SIVACO来仿真研究PT型和NPT型的IGBT结构特点&#xff0c;并且通过仿真研究对于不同的掺杂浓度、沟道宽度等对器件的特性产生不同的影响。 资料获取到咸&#x1f41f;&#xff1a;xy591215295250 \\\或者联系wechat 号&#xff1a;comprehensivable &…

HTML(15)——盒子模型

盒子模型组成 内容区域 -width&height内边距-padding &#xff08;出现在内容与盒子边缘之间&#xff09;边框线-border外边距-margin &#xff08;出现在盒子外面&#xff09; div { width: 200px; height: 200px; background-color: rgb(85, 226, 193); padding: 20px; …

未来一周比特币价格及数字货币市场预测

荷月的比特币市场就像过山车一样&#xff0c;仅仅六月下旬就跌去-12%&#xff0c;本周更是暴跌-6%&#xff0c;至 58,378美元。在这种市场表现&#xff0c;应有的踩踏如期而至。德国政府今日宣布再出售750 比特币的行为继续打击多头&#xff0c;但是小编认为这恰恰预示着市场可…

【Linux进阶】基础IO函数详解

1.函数open和openat 调用open或openat函数可以打开或创建一个文件。 #include <fcntl.h> int open(const char *path, int ofag, ... /* mode_t mode */);int openat (int fd, const char *path, int oflag, ... /* mode_t mode */); 我们将最后一个参数写为...&#x…

突然!某大客户核心凌晨突然崩溃....

这几天实在太忙&#xff0c;刚弄完文档。业务线的同事就找到我&#xff0c;说一个银行客户的核心系统昨晚出了故障&#xff0c;还没找到原因&#xff0c;希望能帮忙分析下。 从提供的信息来看是业务跑任务报错&#xff0c;遇到了Oracle-00600和ora-07445 错误。 Doing block re…

机器学习-数据预处理-聚类-回归-分类-单车数据集

机器学习-数据预处理-聚类-回归-分类-单车数据集 前言一、数据预处理1. 导入数据集2. 数据预处理3. 处理缺失值4. 生成特征用于后续进一步的分析 二、数据分布可视化1. 骑行时长分布2. 起始站和终点站分布可视化3. 高峰期与非高峰期骑行频次分布 三、聚类分析1. K-means聚类 四…

Vue2 - 首页登录实现随机验证码组件的封装与实现详解(详细的注释及常见问题汇总)

在网站首页等登录时,随机验证码在现代网络应用中扮演着重要的安全角色。为了帮助开发者轻松集成和使用随机验证码功能,本文将介绍如何利用 Vue.js 2 封装一个简单而功能强大的随机验证码组件。让你能够快速理解并应用这一组件到你的项目中。 一、解决方案 本文提供了完美便捷…

HMI 的 UI 风格,精妙无比

HMI 的 UI 风格&#xff0c;精妙无比

【Pillow】module ‘PIL.Image‘ has no attribute ‘ANTIALIAS‘问题解决

问题描述 我在使用 SummaryWriter 记录图片数据日志时&#xff0c;遇到了报错&#xff0c;如下图所示&#xff1a; 问题的原因在于&#xff0c;使用的pillow版本已经舍弃了ANTIALIAS&#xff0c;在新版本中已经改为了LANCZOS 问题解决 两种解决方式&#xff1a; 修改源码更…

C#——this关键字详情

this关键字 在 C# 中&#xff0c;可以使用 this 关键字来表示当前对象&#xff0c;日常开发中我们可以使用 this 关键字来访问类中的成员属性以及函数。 使用this表示当前类的对象 执行结果 使用 this 关键字串联构造函数 执行结果 使用 this 关键字作为类的索引器 执行结果 …

冷门赛道,视频号励志语录赛道详解,新手轻松上手

大家好&#xff0c;我是闷声轻创&#xff0c;在当今数字化时代&#xff0c;社交媒体已成为人们获取信息、分享生活和实现个人价值的重要渠道。视频号&#xff0c;作为新兴的短视频平台&#xff0c;以其独特的优势和巨大的流量潜力&#xff0c;吸引了众多创作者的目光。今天我将…

Ci2451和Ci2454:2.4GHz无线MCU的芯片对比数据资料分析

一、2.4GHz无线MCU芯片的背景介绍 1、开头我们先聊聊&#xff0c;关于南京中科微2.4GHz无线MCU芯片&#xff08;Ci2451、Ci2454、CSM2433)是建立在现有的2.4GHz射频芯片基础上面&#xff0c;它的内部是集成了8位RISC内核&#xff0c;且集成丰富的MCU资源、更小的尺寸可以来满足…

用心选择,用爱呵护《米小圈上学记》和孩子一起热爱校园生活

作为家长&#xff0c;我们时常为孩子的教育和成长担忧&#xff0c;尤其是在选择适合他们阅读的书籍时更是如此。一本好的儿童读物不仅要有趣&#xff0c;还应该能够激发孩子的想象力&#xff0c;培养他们的品格与勇气。在这个过程中&#xff0c;我发现了一本特别适合孩子们的书…

FME实现批量合并shapefile文件数据,并提取原文件名,输出到属性表字段中的解决方法

目录 一、实现效果 二、实现过程 1.读取数据 2.暴露文件名属性 3.设置文件名字段 4.输出成果 5.模板的使用 三、总结 今天来介绍如何使用FME软件来实现对多个shapefile数据进行批量合并&#xff0c;同时提取原文件名并存储到合并后shapefile数据属性表字段中的方法&…

深入剖析Tomcat(十、十一) 详解StandardWrapper

《深入剖析Tomcat》第十章介绍了Tomcat的安全机制&#xff0c;主要就是对servlet的访问做安全验证&#xff0c;如果Tomcat中设置了某些servlet需要指定角色的用户才能访问&#xff0c;则需要客户端进行登录验证&#xff0c;如果用户名密码正确并且该用户拥有该角色的话&#xf…

windows git配置多个账号

window下git多账号配置_百度搜索 (baidu.com) 最重要的是这里生成新的id_rsa文件的时候&#xff0c;bash窗口是在 .ssh路径下 其实就是这个窗口在什么路径下执行的就是生成在什么路径 下面窗口路径不对&#xff0c;不是Desktop&#xff0c;应该是.ssh 如果是Desktop或者任何一…