svg波浪形文字

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Examples</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link href="" rel="stylesheet">
</head>
<body>
<!-- pattern 笔刷 -->
<svg xmlns="http;//www.w3.org/2000/svg" width="800" height="600">
    <defs>
    <pattern id="grid" x="0" y="0" width="20" height="20" patternUnits="userSpaceOnUse">
        <path stroke="#F0F0F0" fill="none" d="M 0 0,H 20,V 20"></path>
    </pattern>
    </defs>
    <rect width="1200" height="1000" fill="url(#grid)"></rect>
     
    <text id="sintext" x='100' y='220' style="font-size:14px;font-family:'Arial';">
    </text>
    <path d="M 100 0,V 200,M 0 160,H 200" transform="translate(0,60)" stroke="red"></path>
</svg>
<script type="text/javascript">
    var text = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    var n = text.length;
    var x = [];
    var i = n;
    var y = null;
    var s = 100,w = 0.02,t = 0;
    while(i--){
        x.push(10);
        var tspan = document.createElementNS('http://www.w3.org/2000/svg','tspan');
        tspan.textContent = text[n - i - 1];
        sintext.appendChild(tspan);
        var h = Math.round(360 / 26 * i);
        tspan.setAttribute('fill','hsl(' + h + ',100%,80%)');
    }
 
    function arrange(t){
        y = [];
        var ly = 0,cy;
        for(i = 0;i < n; ++i){
            cy = -s * Math.sin(w* i *20 +t);
            y.push(cy - ly);
            ly = cy;
        }
        //console.table(y);
    }
 
    function render(){
        sintext.setAttribute('dx',x.join(' '));
        sintext.setAttribute('dy',y.join(' '));
    }
 
    function frame(){
        t += 0.01;
        arrange(t);
        render();
        requestAnimationFrame(frame);
    }
    arrange(0);
    render();
    frame();
</script>   
</body>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTML5中的SVG可以用来创建各种炫酷的动画效果,包括多条波浪线条动画。下面是一个简单的示例代码,用于创建两条波浪线条动画: ```HTML <svg width="800" height="400"> <path id="wave1" fill="none" stroke="#00BFFF" stroke-width="5" d="M0 150 q30 30 60 0 t60 0 t60 0 t60 0 t60 0 t60 0 t60 0 v250 h-360 z"> <animateTransform attributeName="transform" attributeType="XML" type="translate" dur="10s" values="0; -400" repeatCount="indefinite" /> </path> <path id="wave2" fill="none" stroke="#00BFFF" stroke-width="5" d="M0 250 q30 -30 60 0 t60 0 t60 0 t60 0 t60 0 t60 0 t60 0 v150 h-360 z"> <animateTransform attributeName="transform" attributeType="XML" type="translate" dur="10s" values="0; -400" repeatCount="indefinite" /> </path> </svg> ``` 在这个例子中,我们创建了两个波浪线条,分别称为“wave1”和“wave2”。这些路径有一个“d”属性,用于定义路径的形状。这里我们使用了SVG的曲线命令“q”来创建波浪线条。我们还使用了SVG的路径命令“v”和“h”来定义线条的垂直和水平线段。 接下来,我们使用SVG的动画功能,通过使用“animateTransform”元素来创建平移动画。我们将波浪线条沿着Y轴向下移动,并且在10秒钟内完成动画。我们还使用“repeatCount”属性使动画无限循环。 最后,我们将两个波浪线条添SVG元素中,并设置宽度和高度以适应我们的动画。我们还可以使用CSS样式来进一步自定义这些元素的外观。 这只是一个简单的示例,但你可以使用SVG的各种命令和动画功能来创建更复杂和炫酷的波浪线条动画。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值