花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 642|回复: 255

svg+html : 曲线进度条的实现

[复制链接]
  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

    发表于 2023-9-18 17:53 | 显示全部楼层 |阅读模式

    请马上登录,朋友们都在花潮里等着你哦:)

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    本帖最后由 马黑黑 于 2023-9-18 18:39 编辑

    总体思路:

    借助 svg 的 path 元素创建曲线路径 d,d 路径将显示在容器元素之上,它还将成为模拟进度滑块的 html 元素的 offset-path 值,即 d 路径同时也是描述滑块行进的路线。

    路径设计:

    考虑到易用性和复用性,容器元素应可以自定义宽高,为此,路径应能依据容器元素的尺寸动态生成。svg d 路径不支持百分比,为此只能在运行时根据容器元素尺寸设计路径,出于简化目的,可以使用二次贝塞尔曲线来完成曲线设计:从容器的左上角开始到容器的右上角终止,控制点 (x,y) 的 x 为容器宽度的一半、y 为容器高度减去 20。

    实现细节:

    一、CSS样式

    #mydiv 选择器指向容器元素,#ball 选择器是模拟滑块,#svg 选择器是 svg 元素,#mypath 是在 svg 里设计的 path 路径。

    <style>
    
    #mydiv {
    	margin: 20px auto;
    	width: 200px;
    	height: 120px;
    	box-sizing: border-box;
    	position: relative;
    	--prog: 0%;
    }
    
    #ball, #svg { position: absolute; }
    
    #ball {
    	position: absolute;
    	width: 10px;
    	height: 10px;
    	background: green;
    	pointer-events: none;
    	offset-distance: var(--prog);
    }
    
    #mypath { cursor: pointer; }
    
    </style>
    

    二、HTML结构

    容器元素下包裹一个 svg 元素和 一个 div 模拟滑块,svg 标签下有一个 path 路径元素,其 d 路径可以随意设置,它将被后面 JS 动态生成的实际使用路径所覆盖。

    <div id="mydiv">
    	<svg id="svg" width="100%" height="100%">
    		<path id="mypath" d="M0 0 Q100 140 200 0" fill="none" stroke="silver" stroke-width="4" />
    	</svg>
    	<div id="ball"></div>
    </div>
    

    三、JS完成路径生成与进度交互

    首先,声明两个变量:

    let posAr = [], len = 0;

    posAr 数组变量用来记录路径上每一个点的 x 坐标,将来进度交互会用到它;len 是曲线长度,0 表示它是一个数值,将来会被实际长度覆盖。

    接下来写一个自执行匿名函数,它完成两个功能:一是根据容器元素的尺寸生成我们前面设计好大体模样的路径,并将路径加诸于 mypath 元素 和 ball 元素;二是获得曲线每一个像素的 X 坐标值,存入 posAr 数组中。

    (function() {
    	let ww = mydiv.offsetWidth, hh = mydiv.offsetHeight;
    	let d = `M0 0 Q${ww/2} ${hh * 2 - 20} ${ww} 0`;
    	ball.style.setProperty('offset-path', `path('${d}')`);
    	mypath.setAttribute('d', d);
    	len = mypath.getTotalLength(); //路径总长度
    	//遍历路径长度每一个像素单位,储存其所对应的X坐标
    	for(let j = 0; j < len; j++) {
    		posAr.push(mypath.getPointAtLength(j).x);
    	};
    })();
    

    以上匿名函数,关键在于基于 svg 的两个内置 API 函数,getTotalLength 和 getPointAtLength,前者获得 svg 内部元素的总长度,后者获取内部元素某个长度下的XY坐标,其值以对象 {x: n1, y: n2} 返回。

    最后,通过 mypath 路径的点击事件,动态更改进度:

    mypath.onclick = (e) => {
    	for(let j = 0; j < len; j++) {
    		if(e.offsetX <= posAr[j]) {
    			mydiv.style.setProperty('--prog', j / len * 100 + '%');
    			break;
    		}
    	}
    };
    

    这里,被点击对象(mypath)的 e.offsetX 指向点击处的X坐标值,如果该值在数组 posAr 遍历其元素时小于等于某个数组元素所记录的坐标值,则终止for循环(break),终止循环前给 CSS变量 --prog 赋值,这样,html 元素 ball 就会移动到这个 X 坐标值上。

    效果:

    评分

    参与人数 1威望 +50 金钱 +100 经验 +50 收起 理由
    红影 + 50 + 100 + 50 赞一个!

    查看全部评分

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-9-18 20:17 | 显示全部楼层
    这个好,不再是直线的了,可以是曲线的进度了,会更有特色
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-9-18 20:23 | 显示全部楼层
    “控制点 (x,y) 的 x 为容器宽度的一半、y 为容器高度减去 20。”这个减去20是从margin: 20px auto;中来的么?
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-9-18 20:26 | 显示全部楼层
    这个JS还挺复杂的。
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-9-18 21:06 | 显示全部楼层
    红影 发表于 2023-9-18 20:17
    这个好,不再是直线的了,可以是曲线的进度了,会更有特色

    曲线其实是不好做的,比圆和椭圆更复杂。曲线可能是规则的,可能不是,尚且,路径也不一定非得是曲线、弧线不可,这个时候,要通过公式去计算路径上的每一个点的XY坐标就非常麻烦,所以,把路径上的基于每一个像素的点的XY坐标储存到一个数组里,是最简单的解决问题的方法了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-9-18 21:07 | 显示全部楼层
    红影 发表于 2023-9-18 20:23
    “控制点 (x,y) 的 x 为容器宽度的一半、y 为容器高度减去 20。”这个减去20是从margin: 20px auto;中来的 ...

    不是。这是基于svg画布的,不减去一定的数量,曲线的凸点会越位看不见。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-9-18 21:10 | 显示全部楼层
    红影 发表于 2023-9-18 20:26
    这个JS还挺复杂的。

    你从代码量看,JS已经是很简单了。自执行匿名函数做两件事:画路径、把路径的每一个像素点的X坐标记录下来,用到两个svg api 的函数;路径点击事件只做一件事:比较点击点的X坐标和记录里对应的坐标值,依此确定进度位置。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-9-18 23:23 | 显示全部楼层
    马黑黑 发表于 2023-9-18 21:06
    曲线其实是不好做的,比圆和椭圆更复杂。曲线可能是规则的,可能不是,尚且,路径也不一定非得是曲线、弧 ...

    这个“每一个像素的点的XY坐标储存到一个数组里”还真不懂
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-9-18 23:24 | 显示全部楼层
    马黑黑 发表于 2023-9-18 21:07
    不是。这是基于svg画布的,不减去一定的数量,曲线的凸点会越位看不见。

    哦,还有这样的问题啊,这个也是一点都不知道呢。
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-9-18 23:25 | 显示全部楼层
    马黑黑 发表于 2023-9-18 21:10
    你从代码量看,JS已经是很简单了。自执行匿名函数做两件事:画路径、把路径的每一个像素点的X坐标记录下 ...

    这个也是这种进度最难的地方了吧。
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-9-19 12:06 | 显示全部楼层
    红影 发表于 2023-9-18 23:25
    这个也是这种进度最难的地方了吧。

    getPointsAtLength 能够捕捉到任意线段长度的XY坐标,所以就不是难题了:按像素遍历线段长度,记下所有的坐标值,然后调节进度时再去循环比对。这是小事了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-9-19 12:08 | 显示全部楼层
    红影 发表于 2023-9-18 23:24
    哦,还有这样的问题啊,这个也是一点都不知道呢。

    想象一下都可以知道的:一根钢线在一个矩形框里,从中间外上或往下拉扯,拉过头了弧形的凸点就会越过矩形的上或下边缘。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-9-19 12:11 | 显示全部楼层
    红影 发表于 2023-9-18 23:23
    这个“每一个像素的点的XY坐标储存到一个数组里”还真不懂

    这个好简单的呀。比方一根曲线,长度为100像素,则,用 for 语句遍历100次,用 getPointAtLength 取得坐标值,然后存入数组中。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-9-19 15:25 | 显示全部楼层
    马黑黑 发表于 2023-9-19 12:06
    getPointsAtLength 能够捕捉到任意线段长度的XY坐标,所以就不是难题了:按像素遍历线段长度,记下所有的 ...

    嗯嗯,有这个东西就变简单了
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-9-19 15:31 | 显示全部楼层
    马黑黑 发表于 2023-9-19 12:08
    想象一下都可以知道的:一根钢线在一个矩形框里,从中间外上或往下拉扯,拉过头了弧形的凸点就会越过矩形 ...

    饿呢,知道了。
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-9-19 15:32 | 显示全部楼层
    马黑黑 发表于 2023-9-19 12:11
    这个好简单的呀。比方一根曲线,长度为100像素,则,用 for 语句遍历100次,用 getPointAtLength 取得坐 ...

    嗯嗯,这个 getPointAtLength 挺厉害,主要对这个不熟悉啊
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-9-19 18:06 | 显示全部楼层
    红影 发表于 2023-9-19 15:32
    嗯嗯,这个 getPointAtLength 挺厉害,主要对这个不熟悉啊

    这是 svg 的 API,之前我也不知道,我只知道有一个 getTotalLength 的函数。然后要处理曲线点击的问题,就去查文档,这才知道的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-9-19 18:07 | 显示全部楼层
    红影 发表于 2023-9-19 15:31
    饿呢,知道了。

    我不用橡皮筋做比喻,是因为橡皮筋不合适,钢丝很合适的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2025-12-15 08:01
  • 签到天数: 1670 天

    [LV.Master]伴坛终老

    3050

    主题

    13万

    回帖

    28万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生星月交辉奔放热烈海样胸怀春风拂面火热情怀优雅迷人神秘浪漫相遇之美鹰傲苍穹花好月圆紫色情节飞龙在天王者至尊大将风范音画大师天籁妙音共看流星风雨同行我心永远幸福快乐喜乐安康侠骨柔肠心想事成开朗大方花潮管理

     楼主| 发表于 2023-9-19 18:09 | 显示全部楼层
    红影 发表于 2023-9-19 15:25
    嗯嗯,有这个东西就变简单了

    用JS解决问题,其实与列方程解应用题是一个道理的。在已知条件和可用公式、定律基础上找到方法,列出解题的方程,然后解这个方程 。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2023-9-19 21:24 | 显示全部楼层
    马黑黑 发表于 2023-9-19 18:06
    这是 svg 的 API,之前我也不知道,我只知道有一个 getTotalLength 的函数。然后要处理曲线点击的问题, ...

    这还是因为你熟悉,要让我去查,我都不知道查什么
     
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|服务支持:DZ动力|huachaowang.com Inc. ( 蜀ICP备17032287号-1 )

    GMT+8, 2025-12-16 00:15 , Processed in 0.136524 second(s), 25 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表