新闻中心

html函数如何制作环形进度条 html函数SVG图形的内联应用

2025-10-16
浏览次数:
返回列表
答案:通过HTML内联SVG结合J*aScript控制stroke-dashoffset实现环形进度条,利用circle元素绘制背景和进度圆,用stroke-dasharray与stroke-dashoffset配合周长计算进度显示,通过J*aScript动态更新偏移值和文本内容,并添加CSS过渡动画使变化平滑,rotate(-90deg)使进度从顶部开始,最终实现轻量可复用的环形进度条组件。

html函数如何制作环形进度条 html函数svg图形的内联应用

制作环形进度条可以通过 HTML 结合 SVG 内联实现,无需依赖外部文件,直接在 HTML 中使用 SVG 绘制图形,并通过 J*aScript 动态控制进度。下面详细介绍如何用内联 SVG 创建一个可自定义的环形进度条。

1. SVG 环形进度条的基本结构

SVG 的 元素结合描边(stroke)和描边偏移(stroke-dasharray 与 stroke-dashoffset)可以实现环形进度效果。原理是绘制一个圆形轮廓,然后通过虚线描边控制可见部分长度,模拟进度。

<svg width="120" height="120" viewBox="0 0 120 120">
  <!-- 背景圆 -->
  <circle cx="60" cy="60" r="50" fill="none" stroke="#e6e6e6" stroke-width="10"/>
<p><!-- 进度圆 -->
<circle cx="60" cy="60" r="50" fill="none" stroke="#4caf50"
stroke-width="10" stroke-dasharray="314" 
stroke-dashoffset="314" class="progress-circle"/></p><p><!-- 显示文字 -->
<text x="60" y="60" text-anchor="middle" dominant-baseline="central" 
font-size="20" fill="#333">0%</text>
</svg></p>

说明:

  • r="50":半径为 50,圆心在 (60,60),因此周长 = 2πr ≈ 314
  • stroke-dasharray="314":设置虚线总长度等于周长
  • stroke-dashoffset:初始为 314 表示无显示;值越小,显示越多

2. 使用 J*aScript 控制进度

通过函数动态计算 dashoffset 并更新文本,实现进度变化。

function setProgress(percent) {
  const circle = document.querySelector('.progress-circle');
  const text = document.querySelector('text');
  const offset = 314 * (1 - percent / 100);
  circle.style.strokeDashoffset = offset;
  text.textContent = percent + '%';
}

调用示例:

察言观数AskTable 察言观数AskTable

企业级AI数据表格智能体平台

察言观数AskTable 78 查看详情 察言观数AskTable
setProgress(75); // 设置为 75%

3. 添加样式和动画效果

可以在 CSS 中添加过渡动画,让进度更平滑。

.progress-circle {
  transition: stroke-dashoffset 0.8s ease;
  transform: rotate(-90deg);
  transform-origin: 50% 50%;
}

说明:

  • transition 让描边变化有动画
  • rotate(-90deg) 使进度从顶部开始

4. 完整示例代码

<!DOCTYPE html>
<html>
<head>
  <style>
    svg { display: block; margin: 20px auto; }
    .progress-circle {
      transition: stroke-dashoffset 0.8s ease;
      transform: rotate(-90deg);
      transform-origin: center;
    }
  </style>
</head>
<body>
<p><svg width="120" height="120" viewBox="0 0 120 120">
<circle cx="60" cy="60" r="50" fill="none" stroke="#e6e6e6" stroke-width="10"/>
<circle cx="60" cy="60" r="50" fill="none" stroke="#4caf50"
stroke-width="10" stroke-dasharray="314" 
stroke-dashoffset="314" class="progress-circle"/>
<text x="60" y="60" text-anchor="middle" dominant-baseline="central" 
font-size="20" fill="#333">0%</text>
</svg></p><p><script>
function setProgress(percent) {
const circle = document.querySelector('.progress-circle');
const text = document.querySelector('text');
const offset = 314 * (1 - percent / 100);
circle.style.strokeDashoffset = offset;
text.textContent = percent + '%';
}</p><p>// 示例:设置进度
setProgress(60);
</script></p><p></body>
</html></p>

基本上就这些。通过内联 SVG 和简单的 J*aScript 函数,就能实现一个轻量、可复用的环形进度条,适合嵌入网页任意位置,无需额外资源加载。

以上就是html函数如何制作环形进度条 html函数SVG图形的内联应用的详细内容,更多请关注其它相关文章!


# 自定义  # html网站建设  # 营销方案推广手段  # 江干区网站建设平台  # 大同网站长尾关键词优化  # 新疆seo优化合作  # 福田自动网站推广平台  # 嘉兴网站建设中的热点  # 推广校园网站ppt  # 饰品网站怎么做推广营销  # 南昌抖音关键词排名报价  # 详细介绍  # 解决问题  # html  # 中文网  # 可以通过  # 相关文章  # 就能  # 复用  # 显示效果  # 进度条  # svg  # java  # javascript  # css  # html函数 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 漫蛙2(台版)官方入口地址 漫蛙2(台版)正版漫画网页端  2026年发布! 美少女养成动作RPG《神剑少女战记》发布实机演示  Excel如何用迷你图显趋势_Excel用迷你图显趋势【趋势小图】  AO3镜像入口大全 AO3网页版内容访问全集  Win10怎么设置静态IP地址 Win10手动配置IP地址步骤【指南】  服务端验证_j*ascript输入检查  蛙漫官方正版入口 蛙漫网页在线全集免费观看  Gmail邮箱申请注册直达_Gmail邮箱免费注册PC版官网入口2025  CSS响应式网页如何实现主次模块比例自适应_flex-grow与flex-shrink调整  css链接悬停下划线样式如何自定义_使用::after结合content和transition  Go与Ruby之间实现AES加密互通:CFB模式下的密钥长度匹配策略  谷歌浏览器一键优化方案_谷歌浏览器直达主页极速不卡版  Composer如何在生产环境安全地执行composer update  QQ邮箱官方网页版登录 QQ邮箱个人邮箱快速访问  《明末:渊虚之羽》设计师谈设计角色:那会刚毕业 充满激情  C++如何打印当前代码行号与文件名_C++预定义宏FILE与LINE的使用  谷歌浏览器最新官方入口链接 谷歌浏览器网页版官网导航  zookeeper 都有哪些功能?  AWS EC2实例间SQL Server连接超时:安全组配置与故障排除指南  怎么在html里运行vbs脚本_html中运行vbs脚本方法【教程】  NVIDIA股价11月重挫12%:下月有望好转 但难回5万亿美元巅峰  Django表单提交验证失败后保持字段值不刷新  漫蛙漫画登录站点 漫蛙2正版漫画快速访问  Windows电脑怎么截图最方便_系统自带截图工具的5种神仙用法【技巧】  ArchiveofOurOwn小说阅读-ArchiveofOurOwn同人作品访问链接  React Router 嵌套组件中 URL 重定向问题的解决方案  深入理解J*a链表中的IPosition接口与使用  解决 Express.js 中 PUT 请求密码修改失败的路由配置指南  移动端XML文件怎么转换成Excel 手机和平板上的解决方案  纯CSS与HTML网格布局的HTML精简策略:SVG与JS方案解析  PDF文件体积过大处理_PDF压缩技巧详解  如何在Python中使用Optional类型处理可变对象并避免Pylint警告  解决macOS上安装pyhdf时‘hdf.h’文件缺失的编译错误  AI抖音网页版免费视频入口 AI抖音网页端最新视频实时观看  poki免费入口快捷访问 poki人气小游戏直接玩站点  Golang如何实现容器化日志收集与分析_Golang容器日志收集分析方法  汽水音乐在线解析 汽水音乐在线解析入口  俄罗斯搜索引擎Yandex指南 附2025年免登录官网入口  Python多版本共存与虚拟环境管理深度指南  离线运行Go语言之旅:本地部署与GOPATH配置指南  如何使用Go和Martini动态服务解码后的图片  html两个JS只运行一个怎么办_让双JS在html中都运行方法【技巧】  为什么我的微信朋友圈看不到别人的更新_微信朋友圈更新显示异常解决方法  Golang如何使用buffered channel提高性能_Golang buffered channel优化技巧  C++如何实现单例模式_C++设计模式之线程安全的单例写法  照顾宝贝2小游戏点击立即在线玩  c++中为什么推荐使用using替代typedef_c++现代化类型别名  《GTA6》开发画面疑似泄露!这次可不是AI了  学习通在线学习平台 学习通网页版直接进入课程中心  Yandex搜索引擎官网入口_俄罗斯Yandex免登录一键直达 

搜索