svg dom沿路径绘制文本

该示例展示了如何使用SVG DOM在HTML中创建一个SVG元素,并沿预定义的路径绘制文本。通过创建SVG的`<svg>`,`<defs>`,`<path>`,`<g>`,`<text>`和`<textPath>`元素,实现了文本沿路径的显示。最终效果是在一个380x200像素的框内,有一条蓝色的路径,路径上显示了文本'SVG与文本:使用textPath进行字符串显示实例'。
摘要由CSDN通过智能技术生成
svg <wbr>dom沿路径绘制文本
   <!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>svg dom沿路径绘制文本</title>
    <style>
        #text{
            border: 1px solid red;
            width: 380px;
            height: 200px;
        }
    </style>
    <script>
        function createText(){

            var root=document.getElementByIdx_x("text");
            var SVG="http://www.w3.org/2000/svg";
            var XLINK="http://www.w3.org/1999/xlink";
            var svg=document_createElement_xNS(SVG,"svg");
            svg.setAttribute("width","380");
            svg.setAttribute("height","200");

            //创建我们的defs元素
            var defs=document_createElement_xNS(SVG,"defs");
            svg.a(defs);
            //创建我们的path元素
            var circlePath=document_createElement_xNS(SVG,"path");
            circlePath.setAttribute("d","M10,50"+
                            "C10,50 50,0 100,50"+
                            "C100,50 150,100,190,50"+
                            "M10,150"+
                            "C10,150 50,100 100,150"+
                            "C100,150 150,200 190,150"
                            );
            circlePath.setAttribute("id","circlePath");


            //创建我们的g元素
            var g=document_createElement_xNS(SVG,"g");
            g.setAttribute("fill","dodgerblue");
            g.setAttribute("font-size","15");
            g.setAttribute("transform","translate(100,0)");

            //创建我们的text元素
            var text=document_createElement_xNS(SVG,"text");
            //创建我们的textPath元素
            var textPath=document_createElement_xNS(SVG,"textPath");
            textPath.setAttributeNS(XLINK,"href","#circlePath");
            textPath.textContent="SVG与文本:使用textPath进行字符串显示实例";

            var circle=document_createElement_xNS(SVG,"use");
            circle.setAttributeNS(XLINK,"href","#circlePath");
            circle.setAttribute("fill","none");
            circle.setAttribute("stroke","blue");

            defs.a(circlePath);
            text.a(textPath);
            g.a(text);
            svg.a(g);
            root.a(svg);
        }

    </script>
</head>
<body οnlοad="createText();">
       <h3>svg dom沿路径绘制文本</h3>
       <div id="text"></div>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值