如图活动开发中有此类弧形文字需求,经历一顿查阅后,记录下个人采用svg的解决办法。

svg代码如下:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="path1" d="M25,138 C126,128 193,128 283,140" /></defs><text style="fill:#FBF0C1;"><textPath xlink:href="#path1"> 活动时间:2023年01月21日-2月05日 </textPath></text>
</svg>

绘制path坐标html代码如下(转载的):

<!DOCTYPE html>
<!-- 参考:http://dayu.pw/svgcontrol/ -->
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>SVG PATH路径生成</title><script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script><style>body{background: #ccc;font-family: 'Microsoft YaHei';color: #345;}.svg-inner{width: 900px;height: 600px;margin: 0 auto;background: #fff;}#svgMain{-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;box-shadow:0px 3px 13px #333333;}#svgMain circle{cursor: pointer;fill:rgba(200,200,200,1);stroke:rgba(200,200,200,1);stroke-width:3}#svgMain polyline{fill:rgba(200,200,200,0);stroke:rgba(200,200,200,1);stroke-width:1}h1, h4{text-align:center;margin:10px;}</style><h1>贝塞尔曲线控制</h1><h4>M200 250 C141.5 130 421.5 146 500 250</h4><div style="text-align:center; margin-bottom:10px;"><label><input type="checkbox" id="chkZ" />闭合</label><select id="selType"><option value="M">M 移动</option><option value="L" selected>L 画线到</option><option value="H">H 水平绘制</option><option value="V">V 竖直绘制</option><option value="C">C 三次贝塞尔</option><option value="S">S 三次贝塞尔对称</option><option value="Q">Q 二次贝塞尔</option><option value="T">T 二次贝塞尔连续</option></select>*双击可添加控制点</div><div class="svg-inner"><svg width="100%" height="100%" id="svgMain" xmlns="http://www.w3.org/2000/svg" version="1.1"><polyline points=""></polyline><path d="" style="fill:rgba(0,0,0,0);stroke:#345;stroke-width:3"></path><circle data-type="M" cx="200" cy="250" r="5"></circle><circle data-type="C" cx="141.5" cy="130" r="5"></circle><circle data-type="C" cx="421.5" cy="146" r="5"></circle><circle data-type="C" cx="500" cy="250" r="5"></circle></svg></div><script>$(function(){$('#svgMain').dblclick(function(e){var cx = e.pageX-$(this).parent().offset().left;var cy = e.pageY-$(this).parent().offset().top;var circle = document.createElementNS("http://www.w3.org/2000/svg","circle");circle.setAttribute("cx", cx);circle.setAttribute("cy", cy);circle.setAttribute("r", 5);circle.setAttribute("data-type", $('#selType').val());$(this).append(circle);setPoints($(circle));setPolyline();setPath();});$('#svgMain circle').each(function(){setPoints($(this));});$('#chkZ').change(function(){setPolyline();setPath();});setPolyline();setPath();});function setPoints(obj){var mouseDown=false;obj.mousedown(function(){mouseDown=true;});obj.parent().mouseup(function(){mouseDown=false;});obj.parent().mousemove(function(e){e.preventDefault();if(mouseDown){obj.attr('cx',e.pageX-obj.parent().offset().left);obj.attr('cy',e.pageY-obj.parent().offset().top);setPolyline();setPath();}});}function setPolyline(){var points = '';$('#svgMain circle').each(function(){points += $(this).attr('cx') + ',' + $(this).attr('cy') + ' ';});$('#svgMain polyline').attr('points', points);}function setPath(){var d = '';var lastType = '';$('#svgMain circle').each(function(){var cx = $(this).attr('cx');var cy = $(this).attr('cy');var t = $(this).data('type');if (lastType != t || t == 'M'){d += t;}if (t == 'H') {d += cx + ' ';} else if (t == 'V') {d += cy + ' ';} else {d += cx + ' ' + cy + ' ';}lastType = t;});if ($('#chkZ')[0].checked){d += ' Z';}$('h4').html(d);$('#svgMain path').attr('d', d);}</script></body></html>

复制到本地运行,直接在页面上拉出想要的形状,替换掉path的数值就行。逗号不要漏掉

文字大小可直接继承父元素

关于使用svg画弧形文字相关推荐

  1. SVG画扇形,可以改变数量、扇形角度、扇形方向

    效果图有点low,忍一忍吧 最近做项目,需求是在地图上实现一个基站,虽然基站是由扇形组成的2D图标(就像一个风扇) 来个图吧: 但是有个要求 用户可以配置任意多个扇形,任意角度大小,任意方向的扇形,后 ...

  2. PS技术之如何写弧形文字

    有一次做一个协会的会徽,遇到了一个头疼的问题..不知道如何写逆时针的弧形文字. 后来,终于弄明白了. 现把制作弧形文字的步骤写在下面. 先用椭圆工具画一个圆.如图(3-1) 然后选择横排文字工具. 当 ...

  3. CorelDraw软件设计弧形文字的操作方法教学

    CorelDraw软件设计弧形文字的操作方法教学.在CorelDraw软件中,我们常常会需要去设计一些弧形的文字,比如设计一个弧形的文字标题,或者是制作印章的时候.那么这样的文字要如何去制作呢?来看看 ...

  4. iOS开发之弧形文字

    项目需要一个环形进度条,所以需要弧形的文字显示进度,网上找了一圈没有什么适合的,所以自己封装了一个简单的弧形文字. 效果图如下: 首先我们需要一个结构体来计算出每个glyph的绘制点和偏移角度: ty ...

  5. svg画半圆详解(L指令、M指令、A指令)

    svg画半圆 了解画半圆的各个指令 L指令 M指令 A指令 画整半圆 推荐:svg画整圆详解 推荐:svg的text标签字体.颜色.样式.大小.居中详解 接到需求,要求做出一个这样的活动转盘,,,,, ...

  6. [html] 使用svg画一个三角形

    [html] 使用svg画一个三角形 效果 Screen Shot 2020-11-13 at 14 39 20 说明 svg 定义svg元素 viewBox 定义svg的画布大小,0 0 100 1 ...

  7. [html] 使用svg画一个爱心

    [html] 使用svg画一个爱心 <head><style>*,*:before,*:after {box-sizing: border-box;margin: 0;padd ...

  8. [html] 使用svg画出一个矩形

    [html] 使用svg画出一个矩形 <svg width="400" height="200" viewbox="0 0 2000 1000& ...

  9. [html] 使用svg画一个微信的logo

    [html] 使用svg画一个微信的logo <svg xmlns="http://www.w3.org/2000/svg" version="1.1"& ...

最新文章

  1. mysql 事物状态有几种_MySQL知识点汇总:亿级高并发数据库运转原理大公开!
  2. Centos6.5_x86_64 编译安装Subversion-1.8.5
  3. jvm调优:能生成的线程数
  4. java安全编码指南之:可见性和原子性
  5. linux lvm 删除pv磁盘,如何安全的删除Linux LVM中的PV物理卷(硬盘或分区)
  6. 学习记录-网络基础知识(1)
  7. ARM处理器上电/复位操作
  8. 第3章 神经网络的最优化
  9. 1091.二进制矩阵中的最短路径(力扣leetcode) 博主可答疑该问题
  10. 慕课软件质量保证与测试(第二章.课后作业)
  11. 图中提取数据再作图---GetData Graph Digitizer
  12. oracle筛选后怎样重新排序,excel表格筛选后怎么重新排序
  13. 使用RssHub为网页生成RSS订阅源
  14. CCS+JS绘制星型拓扑图(关系图)
  15. java事件监听学习——通过键盘方向键控制小球移动
  16. symfony配置文件之三:routing和路由配置
  17. 北京工程测量乙级资质申请流程
  18. HTML5经典面试题
  19. JSP对接国际验证码接口DEMO示例
  20. matlab pca函数怎么用,matlab的pca函数说明

热门文章

  1. M1 MacBook安装soundflower失败情况下如何录屏录制系统内置声音?
  2. 如何删除表中重复的wid
  3. 8086CPU汇编语言学习笔记
  4. origin学习笔记1——将数据制成图表
  5. 计算机二级多少分算过了?
  6. 【Tools】彻底搞懂原码,反码,补码和变补。
  7. silk v3 decoder php,解码转换QQ微信的SILK v3编码音频为MP3或其他格式
  8. 网站建设之域名注册和域名备案
  9. 你所记的,都是假的——西门也静
  10. ubuntu 错误:error :must run as root