章节
问答
课签
笔记
评论
占位
占位
今日不再显示

下一节课程: SVG-垂直居中问题 (08:44) 下一节 重新观看

3 秒后播放下一节

为你推荐

techird
JS工程师

中文名“太扯淡”,资深前端攻城狮。主攻前端复杂应用的开发,有丰富的实战经验。

提问题

写笔记

代码语言
公开笔记
提交
加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最新回答 / Nice_lq
我偏要谢,蟹蟹?

已采纳回答 / 慕用8116058
<...code...>把这段代码复制运行一下,发现div1即为div元素,说明如果没有变量名没有指定,那么浏览器会自动得到id为该名称的元素。 这里sintext是元素的id,所以变量sintext会指向该元素。大概的意思就是这样的,js的犀牛书里有说到,我没看过这书,但是你可以试一下。

最新回答 / 慕移动9181930
?我也是这问题??怎么解决的大神确实啊&nbsp;&nbsp;用户体验更好啊&nbsp;&nbsp;&nbsp;怎么会是更差呢&nbsp;

最新回答 / qq_曼卿_0
我看了一部分视频  你说的w 是sin(wx + p) 吗 这是数学常识

已采纳回答 / Jason333
字符串和一维字符数组一样

讲师回答 / techird
您好,请问是哪部分讲的不够清楚?

老师没有给出代码  我在这里贴一下(代码需要优化,console.table(y)会被很快的执行很多次,资源也没有及时释放)

<!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="100%" height="100%">
    <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='160' 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>


+ 我来回答 回答最高可+2积分
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言