zoukankan      html  css  js  c++  java
  • SVG 文字sin型曲线动画

    先上图:

    9414344-65872e980ea1989b.gif
    未命名项目.gif

    代码实现:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body style="background-image:url(ubw.png);">
    
    <svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%">
        <text id="txt" x="100" y="100" style="font-size:25px;">
            http://www.toly1994.com----张风捷特烈
        </text>
    </svg>
    <script src="jquery-3.3.1.js"></script>
    <script>
    
        var num = $('#txt').text().trim().length;//文字数目
        var x = [];//x值的数组
        var s = 40;//波峰/谷
        var w = 1;//
        var y = null;//y值的数组
        var t = 0;
    
        for (let i = 0; i < num; i++) {
            x.push(20);
        }
    
        /**
         * 确定y值
         */
        function arrange(t) {
            y = [];
            var ly = 0, cy;
            for (let i = 0; i < num; i++) {
                cy = -s * Math.sin(w * i + t);
                y.push(cy - ly);
                ly = cy;
            }
        }
    
        /**
         * 渲染函数,动态改变
         */
        function render() {
            $('#txt').attr("dx", x.join(' '));
            $('#txt').attr("dy", y.join(' '));
    
        }
    
        /**
         * 动画
         */
        function frame() {
            t += 0.03;
            arrange(t);
            render();
            requestAnimationFrame(frame);//动画
        }
    
        frame();
    </script>
    </body>
    </html>
    
  • 相关阅读:
    简单的运动框架——分享给初学者
    Python数据分析学习日志(1. 书单)
    mysql恢复数据参考
    window cmd 杀掉 java.exe 进程
    转载: Ajax关于readyState和status的讨论
    开发问题bug记录
    vue基础part10
    vue基础part9
    vue基础part(7-8)
    vue基础part(4-6)
  • 原文地址:https://www.cnblogs.com/toly-top/p/9781981.html
Copyright © 2011-2022 走看看