山曦 發表於 2019-11-30 18:55:00

HTML5

<h1>一:HTML5新增的属性</h1>
<p>HTML目录:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(128, 0, 128, 1)">   1</span><span style="color: rgba(0, 0, 0, 1)">、新增的标签
      语义化标签
      canvas(画板)
      svg
      audio(音频播放)
      video(视频播放)
    </span><span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">、新增的属性
      placeholder
      calendar,date time email url search
      ContentEditable
      Draggable
      Hidden
      Context</span>-<span style="color: rgba(0, 0, 0, 1)">menu
      Data</span>-<span style="color: rgba(0, 0, 0, 1)">val(自定义属性)
    </span><span style="color: rgba(128, 0, 128, 1)">3</span><span style="color: rgba(0, 0, 0, 1)">、api
      定位(需要地理位置的功能)
      重力感应(陀螺仪)
      request</span>-animation-<span style="color: rgba(0, 0, 0, 1)">frame(动画优化)
      History(控制当前页面的历史记录)
      LocalStorage,SessionStorage(存储信息,比如:历史的最高纪录)
      WebSocket(在线聊天,聊天室)
      FileReader(文件读取,预览)
      WebWorker(文件的异步,提升性能,提升交互体验)
      Fetch(传说中的ajax)</span></pre>
</div>
<p>&nbsp;</p>
<div><span style="font-size: 16px">1、input新增的属性,有些浏览器支持,有些不支持,使用在form表单里面</span></div>
<div>
<div class="cnblogs_code">
<pre><span style="font-size: 16px">     &lt;form action=<span style="color: rgba(128, 0, 0, 1)">""</span>&gt;
            &lt;input type=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">date</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(0, 128, 0, 1)">//显示年月日</span><span style="color: rgba(0, 128, 0, 1)">&lt;!--chrome支持,Safari,IE不支持--&gt;</span>
            &lt;input type=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">time</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(0, 128, 0, 1)">//显示早中晚+几点</span><span style="color: rgba(0, 128, 0, 1)">&lt;!--chrome支持,Safari,IE不支持--&gt;</span>
            &lt;input type=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">week</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(0, 128, 0, 1)">//显示年+第几周</span><span style="color: rgba(0, 128, 0, 1)">&lt;!--chrome支持,Safari,IE不支持--&gt;</span>
            &lt;input type=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">datetime-local</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(0, 128, 0, 1)">//显示年月日,早中晚+几点</span><span style="color: rgba(0, 128, 0, 1)">&lt;!--显示时间和日期,chrome支持,Safari,IE不支持--&gt;</span>
            &lt;input type=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">number</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">&lt;!--chrome支持,Safari,IE不支持--&gt;</span>
            &lt;input type=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">email</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">&lt;!--chrome,火狐支持,Safari,IE不支持--&gt;</span>
            &lt;input type=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">color</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">&lt;!--chrome支持,Safari,IE不支持--&gt;</span>
            &lt;input type=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">range</span><span style="color: rgba(128, 0, 0, 1)">"</span> min=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">1</span><span style="color: rgba(128, 0, 0, 1)">"</span> max=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">100</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">&lt;!--chrome,Safari支持,火狐IE不支持--&gt;</span>
            &lt;input type=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">search</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">&lt;!--chrome支持,Safari支持一点,IE不支持--&gt;</span>
            &lt;input type=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">url</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">&lt;!--chrome,火狐支持,Safari,IE不支持--&gt;</span>
            &lt;input type=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">submit</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;
      &lt;/form&gt;</span></pre>
</div>
<p>2、contenteditable="true",可编辑的</p>
<div class="cnblogs_code">
<pre>&lt;div contenteditable=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">true</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;aa&lt;/div&gt;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">&lt;!--&nbsp;可编辑的,没有兼容问题,本身没有可以继承父级--&gt;</span></pre>
</div>
<p>3 、a和img标签默认是可拖拽的,其余的加draggable可拖拽,拖拽的生命周期:1、拖拽开始,拖拽进行中,拖拽结束;2、拖拽的物体,目标区域</p>
<div class="cnblogs_code">
<pre>&lt;div <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">wrap</span><span style="color: rgba(128, 0, 0, 1)">"</span> draggable=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">true</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">&lt;/div&gt;&lt;!--&nbsp;chrome,Safari支持,firefox不支持--&gt;4</span></pre>
</div>
<p>4、canvas</p>
<div class="cnblogs_code">
<pre>    <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> var ctx = canvas.getContext("2d");获取画笔
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ctx.stroke();把画笔显示出来
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ctx.moveTo(100, 100);</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">起点
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ctx.beginPath();开始新一条路径
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ctx.lineWidth=10;线条的宽度
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ctx.closePath();</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">闭合
    </span><span style="color: rgba(0, 128, 0, 1)">//</span> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ctx.fill();</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">填充颜色</span></pre>
</div>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 画矩形的方法
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ctx.rect(100,100,100,100);ctx.stroke();
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ctx.strokeRect(100,100,100,100);
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ctx.fillRect(100,100,100,100);填充颜色的矩形
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ctx.moveTo(100, 100);</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">起点 ctx.lineTo(200, 100);ctx.lineTo(200,200);ctx.lineTo(100,200); ctx.lineTo(100,100);ctx.stroke();
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> ctx.moveTo(100, 100);</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">起点 ctx.lineTo(200, 100);ctx.lineTo(200,200);ctx.lineTo(100,200);ctx.closePath();</span></pre>
</div>
<p>列子:下落的小方块</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">canvas {
            width: 500px;
            height: 300px;
            border: 1px solid darkcyan;
      }
</span>&lt;canvas id=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">can</span><span style="color: rgba(128, 0, 0, 1)">"</span> width=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">500px</span><span style="color: rgba(128, 0, 0, 1)">"</span> height=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">300px</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;&lt;/canvas&gt;
<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 下落的小方块</span>
    <span style="color: rgba(0, 0, 255, 1)">var</span> height = <span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">;
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> timer =<span style="color: rgba(0, 0, 0, 1)"> setInterval(function () {
      ctx.clearRect(</span><span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(128, 0, 128, 1)">500</span>, <span style="color: rgba(128, 0, 128, 1)">300</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">清除之前画的</span>
      ctx.fillRect(<span style="color: rgba(128, 0, 128, 1)">100</span>, height, <span style="color: rgba(128, 0, 128, 1)">50</span>, <span style="color: rgba(128, 0, 128, 1)">50</span><span style="color: rgba(0, 0, 0, 1)">);
      height</span>+=<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">;
    }, </span><span style="color: rgba(128, 0, 128, 1)">50</span>);</pre>
</div>
<p>&nbsp;</p>
<div class="cnblogs_code">
<pre> <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 画圆 (圆心(x,y),半径(r)弧度(起始弧度,结束弧度)方向(顺时针0,逆时针1))</span>
    ctx.arc(<span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">50</span>,Math.PI*<span style="color: rgba(128, 0, 128, 1)">2</span>,<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.stroke();
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 吃东西形状</span>
    ctx.arc(<span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">50</span>,<span style="color: rgba(128, 0, 128, 1)">0</span>,Math.PI*<span style="color: rgba(128, 0, 128, 1)">1.8</span>,<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.lineTo(</span><span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.closePath();
    ctx.fill();
    ctx.stroke();</span></pre>
</div>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 画圆角矩形B(x,y) C(x,y)圆角大小</span>
    ctx.moveTo(<span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">110</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">起点</span>
    ctx.arcTo(<span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">200</span>,<span style="color: rgba(128, 0, 128, 1)">200</span>,<span style="color: rgba(128, 0, 128, 1)">200</span>,<span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.arcTo(</span><span style="color: rgba(128, 0, 128, 1)">200</span>,<span style="color: rgba(128, 0, 128, 1)">200</span>,<span style="color: rgba(128, 0, 128, 1)">200</span>,<span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.arcTo(</span><span style="color: rgba(128, 0, 128, 1)">200</span>,<span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.arcTo(</span><span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">200</span>,<span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.stroke();</span></pre>
</div>
<p>&nbsp;贝塞尔曲线:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">  //</span><span style="color: rgba(0, 128, 0, 1)"> 二次贝塞尔曲线</span>
<span style="color: rgba(0, 0, 0, 1)">    ctx.beginPath();
    ctx.moveTo(</span><span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.quadraticCurveTo(</span><span style="color: rgba(128, 0, 128, 1)">200</span>, <span style="color: rgba(128, 0, 128, 1)">200</span>, <span style="color: rgba(128, 0, 128, 1)">300</span>, <span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.stroke();

    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 三次贝塞尔曲线</span>
<span style="color: rgba(0, 0, 0, 1)">    ctx.beginPath();
    ctx.moveTo(</span><span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.bezierCurveTo(</span><span style="color: rgba(128, 0, 128, 1)">200</span>, <span style="color: rgba(128, 0, 128, 1)">200</span>, <span style="color: rgba(128, 0, 128, 1)">300</span>, <span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">400</span>,<span style="color: rgba(128, 0, 128, 1)">200</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.stroke();
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 一个小波浪图</span>
    <span style="color: rgba(0, 0, 255, 1)">var</span> width = <span style="color: rgba(128, 0, 128, 1)">500</span><span style="color: rgba(0, 0, 0, 1)">;
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> height = <span style="color: rgba(128, 0, 128, 1)">300</span><span style="color: rgba(0, 0, 0, 1)">;
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> offset = <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> num=<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> canvas = document.getElementById(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">can</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> ctx = canvas.getContext(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2d</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
    setInterval(function () {
      ctx.clearRect(</span><span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(128, 0, 128, 1)">500</span>, <span style="color: rgba(128, 0, 128, 1)">300</span><span style="color: rgba(0, 0, 0, 1)">);
      ctx.beginPath();
      ctx.moveTo(</span><span style="color: rgba(128, 0, 128, 1)">0</span> + offset - <span style="color: rgba(128, 0, 128, 1)">500</span>, height / <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">);
      ctx.quadraticCurveTo(width </span>/ <span style="color: rgba(128, 0, 128, 1)">4</span> + offset - <span style="color: rgba(128, 0, 128, 1)">500</span>, height / <span style="color: rgba(128, 0, 128, 1)">2</span> + Math.sin(num) * <span style="color: rgba(128, 0, 128, 1)">120</span>, width / <span style="color: rgba(128, 0, 128, 1)">2</span> + offset - <span style="color: rgba(128, 0, 128, 1)">500</span>, height / <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">);
      ctx.quadraticCurveTo(width </span>/ <span style="color: rgba(128, 0, 128, 1)">4</span> * <span style="color: rgba(128, 0, 128, 1)">3</span> + offset - <span style="color: rgba(128, 0, 128, 1)">500</span>, height / <span style="color: rgba(128, 0, 128, 1)">2</span> - Math.sin(num) * <span style="color: rgba(128, 0, 128, 1)">120</span>, width + offset - <span style="color: rgba(128, 0, 128, 1)">500</span>, height / <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">);

      ctx.moveTo(</span><span style="color: rgba(128, 0, 128, 1)">0</span> + offset, height / <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">);
      ctx.quadraticCurveTo(width </span>/ <span style="color: rgba(128, 0, 128, 1)">4</span> + offset, height / <span style="color: rgba(128, 0, 128, 1)">2</span> + Math.sin(num) * <span style="color: rgba(128, 0, 128, 1)">120</span>, width / <span style="color: rgba(128, 0, 128, 1)">2</span> + offset, height / <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">);
      ctx.quadraticCurveTo(width </span>/ <span style="color: rgba(128, 0, 128, 1)">4</span> * <span style="color: rgba(128, 0, 128, 1)">3</span> + offset, height / <span style="color: rgba(128, 0, 128, 1)">2</span> - Math.sin(num) * <span style="color: rgba(128, 0, 128, 1)">120</span>, width + offset, height / <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">);
      offset </span>+= <span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">;
      offset </span>%= <span style="color: rgba(128, 0, 128, 1)">500</span><span style="color: rgba(0, 0, 0, 1)">;
      ctx.stroke();
      num</span>+=<span style="color: rgba(128, 0, 128, 1)">0.01</span><span style="color: rgba(0, 0, 0, 1)">;
    }, </span><span style="color: rgba(128, 0, 128, 1)">20</span>);</pre>
</div>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">  //</span><span style="color: rgba(0, 128, 0, 1)"> 直线旋转,根据画布的原点</span>
    ctx.rotate(Math.PI / <span style="color: rgba(128, 0, 128, 1)">6</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">根据画布的原点旋转</span>
    ctx.moveTo(<span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.lineTo(</span><span style="color: rgba(128, 0, 128, 1)">200</span>, <span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.stroke();
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 根据坐标轴旋转</span>
    ctx.translate(<span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">100</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">移动坐标系</span>
    ctx.moveTo(<span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.rotate(Math.PI </span>/ <span style="color: rgba(128, 0, 128, 1)">6</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">根据画布的原点旋转</span>
    ctx.lineTo(<span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.stroke();
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 矩形缩放</span>
    ctx.scale(<span style="color: rgba(128, 0, 128, 1)">2</span>,<span style="color: rgba(128, 0, 128, 1)">2</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">缩放x,y</span>
    ctx.fillRect(<span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.stroke();</span></pre>
</div>
<p>这个translate和scale是设置所有的图形,如果不想其他图形受到影响就要save保存一下原始数据,然后restore还原</p>
<div class="cnblogs_code">
<pre> <span style="color: rgba(0, 0, 255, 1)">var</span> canvas = document.getElementById(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">can</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> ctx = canvas.getContext(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2d</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.beginPath();
    ctx.save();</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 存储当前的平移,旋转,缩放数据</span>
    ctx.translate(<span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">100</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">translate和rotate是全局的,只要第一个设置了translate和rotate,画第二个矩形的时候会跟着旋转的路劲画</span>
    ctx.rotate(Math.PI / <span style="color: rgba(128, 0, 128, 1)">4</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.strokeRect(</span><span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">50</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.beginPath();
    ctx.restore();</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">恢复所有的平移和旋转,第二个矩形不是按原来的位置</span>
    ctx.strokeRect(<span style="color: rgba(128, 0, 128, 1)">200</span>, <span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">50</span>);</pre>
</div>
<p>颜色填充:</p>
<div class="cnblogs_code">
<pre>   <span style="color: rgba(0, 0, 255, 1)">var</span> canvas = document.getElementById(<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">can</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> ctx = canvas.getContext(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2d</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 第一种背景颜色填充</span>
    ctx.fillStyle = <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">blue</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">;
    ctx.fillRect(</span><span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">50</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.stroke();
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 第二种用图片填充,图片和纹理的填充是已原点填充的,所以要改变坐标系位置</span>
    <span style="color: rgba(0, 0, 255, 1)">var</span> img = <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> Image();
    img.src </span>= <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">./img/1.png</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
    img.onload </span>=<span style="color: rgba(0, 0, 0, 1)"> function () {
      ctx.beginPath();
      ctx.translate(</span><span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">);
      </span><span style="color: rgba(0, 0, 255, 1)">var</span> bg = ctx.createPattern(img, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">no-repeat</span><span style="color: rgba(128, 0, 0, 1)">'</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">图片填充要创建纹理</span>
      ctx.fillStyle =<span style="color: rgba(0, 0, 0, 1)"> bg;
      ctx.fillRect(</span><span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(128, 0, 128, 1)">300</span>, <span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">);
      ctx.stroke();
    }
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 第三种渐变颜色填充,已原点填充的,所以要改变坐标系位置</span>
<span style="color: rgba(0, 0, 0, 1)">    ctx.beginPath();
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> bg = ctx.createLinearGradient(<span style="color: rgba(128, 0, 128, 1)">0</span>,<span style="color: rgba(128, 0, 128, 1)">0</span>,<span style="color: rgba(128, 0, 128, 1)">200</span>,<span style="color: rgba(128, 0, 128, 1)">0</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">渐变颜色填充,x0,y0,x1,y1</span>
    bg.addColorStop(<span style="color: rgba(128, 0, 128, 1)">0</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">white</span><span style="color: rgba(128, 0, 0, 1)">'</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">起始颜色</span>
    bg.addColorStop(<span style="color: rgba(128, 0, 128, 1)">1</span>,<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">black</span><span style="color: rgba(128, 0, 0, 1)">'</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">终止颜色</span>
    ctx.fillStyle =<span style="color: rgba(0, 0, 0, 1)"> bg;
    ctx.translate(</span><span style="color: rgba(128, 0, 128, 1)">100</span>,<span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.fillRect(</span><span style="color: rgba(128, 0, 128, 1)">0</span>,<span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(128, 0, 128, 1)">300</span>, <span style="color: rgba(128, 0, 128, 1)">100</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.stroke();
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 第四种:辐射渐变</span>
<span style="color: rgba(0, 0, 0, 1)">    ctx.beginPath();
    </span><span style="color: rgba(0, 0, 255, 1)">var</span> bg = ctx.createRadialGradient(<span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">100</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">渐变颜色填充,x1,y1,半径,x2,y2,半径</span>
    bg.addColorStop(<span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">red</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
    bg.addColorStop(</span><span style="color: rgba(128, 0, 128, 1)">0.5</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">blue</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
    bg.addColorStop(</span><span style="color: rgba(128, 0, 128, 1)">1</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">green</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.fillStyle </span>=<span style="color: rgba(0, 0, 0, 1)"> bg;
    ctx.fillRect(</span><span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(128, 0, 128, 1)">0</span>, <span style="color: rgba(128, 0, 128, 1)">200</span>, <span style="color: rgba(128, 0, 128, 1)">200</span><span style="color: rgba(0, 0, 0, 1)">);
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> canvas阴影</span>
<span style="color: rgba(0, 0, 0, 1)">    ctx.beginPath();
    ctx.shadowColor</span>=<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">green</span><span style="color: rgba(128, 0, 0, 1)">'</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">阴影颜色</span>
    ctx.shadowBlur=<span style="color: rgba(128, 0, 128, 1)">100</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">阴影大小</span>
    ctx.shadowOffsetX=<span style="color: rgba(128, 0, 128, 1)">15</span><span style="color: rgba(0, 0, 0, 1)">;
    ctx.shadowOffsetY</span>=<span style="color: rgba(128, 0, 128, 1)">15</span><span style="color: rgba(0, 0, 0, 1)">;
    ctx.fillRect(</span><span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">100</span>);</pre>
</div>
<p>在canvas里面绘制文字</p>
<p><img src="https://img2018.cnblogs.com/i-beta/1820104/201912/1820104-20191201165919276-830594085.png"></p>
<p>&nbsp;</p>
<div class="cnblogs_code">
<pre>    ctx.font = <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">30px Georgia</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
    ctx.fillText(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">我爱你</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 128, 1)">100</span>, <span style="color: rgba(128, 0, 128, 1)">100</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">细字体,实心字体</span>
    ctx.strokeText(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">我爱你</span><span style="color: rgba(128, 0, 0, 1)">"</span>, <span style="color: rgba(128, 0, 128, 1)">150</span>, <span style="color: rgba(128, 0, 128, 1)">150</span>);<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">租字体,空心字体</span></pre>
</div>
<p>线端样式:给线条的两端加修饰<img src="https://common.cnblogs.com/images/loading.gif"></p>
<p>&nbsp;<img src="https://img2018.cnblogs.com/i-beta/1820104/201912/1820104-20191201170836129-297670647.png">&nbsp;</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">    ctx.beginPath();
    ctx.moveTo(</span><span style="color: rgba(128, 0, 128, 1)">50</span>,<span style="color: rgba(128, 0, 128, 1)">50</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.lineCap</span>=<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">round</span><span style="color: rgba(128, 0, 0, 1)">'</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">给线条两端添加样式,square正方形,round椭圆,butt原来的样子</span>
    ctx.lineTo(<span style="color: rgba(128, 0, 128, 1)">150</span>,<span style="color: rgba(128, 0, 128, 1)">50</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.lineWidth</span>=<span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">;
    ctx.stroke();</span></pre>
</div>
<p><img src="https://img2018.cnblogs.com/i-beta/1820104/201912/1820104-20191201171157334-1566018511.png"></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">    ctx.beginPath();
    ctx.moveTo(</span><span style="color: rgba(128, 0, 128, 1)">50</span>,<span style="color: rgba(128, 0, 128, 1)">50</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.lineJoin</span>=<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">round</span><span style="color: rgba(128, 0, 0, 1)">'</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">给两个线条的相交点添加样式,round圆角,bevel相交两个点砍掉,miter尖锐的<br></span>   ctx.miterLimit=5;<span style="color: rgba(0, 128, 0, 1)">//限制尖锐的长度</span>
    ctx.lineTo(<span style="color: rgba(128, 0, 128, 1)">150</span>,<span style="color: rgba(128, 0, 128, 1)">50</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.lineTo(</span><span style="color: rgba(128, 0, 128, 1)">150</span>,<span style="color: rgba(128, 0, 128, 1)">150</span><span style="color: rgba(0, 0, 0, 1)">);
    ctx.lineWidth</span>=<span style="color: rgba(128, 0, 128, 1)">10</span><span style="color: rgba(0, 0, 0, 1)">;
    ctx.stroke();</span></pre>
</div>
<p>5、svg:放大,不会失真,适合大面积的贴图,通常动画较少或者简单,标签和css画。canvas:适合小面积的绘图,适合动画</p>
<p>&nbsp;5.1、画线条</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">    .line1 {
            </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)"> 显示线条 </span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
            stroke: darkcyan;
            stroke</span>-<span style="color: rgba(0, 0, 0, 1)">width: 3px;
      }
      .line2 {
            stroke: darkblue;
            stroke</span>-<span style="color: rgba(0, 0, 0, 1)">width: 2px;
      }
</span>&lt;svg width=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">500px</span><span style="color: rgba(128, 0, 0, 1)">"</span> height=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">300px</span><span style="color: rgba(128, 0, 0, 1)">"</span> style=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">border:1px solid blue</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;
      &lt;line x1=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">100</span><span style="color: rgba(128, 0, 0, 1)">"</span> y1=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">100</span><span style="color: rgba(128, 0, 0, 1)">"</span> x2=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">200</span><span style="color: rgba(128, 0, 0, 1)">"</span> y2=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">100</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">line1</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;&lt;/line&gt;
      &lt;line x1=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">200</span><span style="color: rgba(128, 0, 0, 1)">"</span> y1=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">100</span><span style="color: rgba(128, 0, 0, 1)">"</span> x2=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">200</span><span style="color: rgba(128, 0, 0, 1)">"</span> y2=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">200</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">line2</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;&lt;/line&gt;
&lt;/svg&gt;</pre>
</div>
<p>5.2、画矩形</p>
<div class="cnblogs_code">
<pre>&lt;rect height=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">50</span><span style="color: rgba(128, 0, 0, 1)">"</span> width=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">100</span><span style="color: rgba(128, 0, 0, 1)">"</span> x=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">0</span><span style="color: rgba(128, 0, 0, 1)">"</span> y=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">0</span><span style="color: rgba(128, 0, 0, 1)">"</span> rx=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">10</span><span style="color: rgba(128, 0, 0, 1)">"</span> ry=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">10</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;&lt;/rect&gt; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">rx是x方向的圆角,ry是y方向的圆</span>&lt;circle r=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">10</span><span style="color: rgba(128, 0, 0, 1)">"</span> cx=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">20</span><span style="color: rgba(128, 0, 0, 1)">"</span> cy=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">20</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;&lt;/circle&gt;<span>画圆(半径,x轴的圆心。y轴的圆心)</span>&lt;ellipse rx=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">100</span><span style="color: rgba(128, 0, 0, 1)">"</span> ry=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">30</span><span style="color: rgba(128, 0, 0, 1)">"</span> cx=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">200</span><span style="color: rgba(128, 0, 0, 1)">"</span> cy=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">200</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;&lt;/ellipse&gt;<span>画椭圆(x半径,y半径,x位置,y位置)</span></pre>
</div>
<div class="cnblogs_code">
<pre>&lt;polyline points=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">0 0,50 50,50 100,100 100,50 100</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;&lt;/polyline&gt;<span style="color: rgba(0, 0, 0, 1)">画折线(起点,拐点,拐点...,终点),每一个点用空格隔开,点和点用逗号隔开
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">样式</span>
<span style="color: rgba(0, 0, 0, 1)">polyline{
            </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)"> 不默认填充,添加自己想要的边框 </span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
            fill:transparent;
            stroke: darkblue;
            stroke</span>-<span style="color: rgba(0, 0, 0, 1)">width: 3px;<br>       fill-opacity:0.2;<span style="color: rgba(0, 128, 0, 1)">//填充半透明</span><br>       stroke-opacity:0.1;<span style="color: rgba(0, 128, 0, 1)">//边框半透明<br></span></span><em id="__mceDel">       stroke-linecap: round;<br></em><em id="__mceDel">       stroke-linejoin: bevel;<br></em><em id="__mceDel"><span>}</span></em></pre>
<div>&lt;polygon points="0 0,50 50,50 100,100 100,100 50"&gt;&lt;/polygon&gt;<span style="color: rgba(0, 128, 0, 1)">//polyline和polygon填充的时候是一样的,不填充的时候polyline不会闭合,polygon会闭合</span></div>
<div>&lt;text x="100" y="100"&gt;hello&lt;/text&gt;<span style="color: rgba(0, 128, 0, 1)">//文本</span></div>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</div><br><br>
来源:https://www.cnblogs.com/pengppp/p/11963575.html
頁: [1]
查看完整版本: HTML5