[
  {
    "path": "README.md",
    "content": "# SVG 奇思妙想 \n使用 `SVG` 标签或是CSS属性 `clip-path` 创建的图形\n\n| Demo link | Description |\n| ------| ------ | \n| [SVG奇思妙想](http://chokcoco.github.io/demo/svg/html/index.html)  | 使用 `SVG` or `clip-path` 创建的图形 | \n| [CSS奇思妙想](http://chokcoco.github.io/magicCss/html/index.html) | CSS3奇思妙想，单标签实现各类图形 |\n\n由于部分图形使用了 `clip-path` ，兼容性问题，请使用 Chrome 浏览器浏览。\n\n## 使用`svg` 绘制各类统计图形\n\n使用 svg 标签绘制各类百分比图、饼图、loading 图。\n\n#### loading 图\n![loading 图](https://github.com/chokcoco/SVG/blob/master/static/images/1.gif)\n\n#### 饼图\n![饼图](https://github.com/chokcoco/SVG/blob/master/static/images/2.gif)\n\n#### 百分比图\n![百分比图](https://github.com/chokcoco/SVG/blob/master/static/images/3.gif)\n\n  　![百分比图](https://github.com/chokcoco/SVG/blob/master/static/images/4.gif)\n\n## License\nMIT\n"
  },
  {
    "path": "html/index.html",
    "content": "<!DOCTYPE html>\r\n<html>\r\n<head>\r\n\t<meta http-equiv=\"Content-Type\"content=\"text/html; charset=utf-8\"/>\r\n\t<meta content=\"SVGSecret,SVG解密,SVG奇淫巧计,SVG妙用,SVG图形\" name=\"Keywords\">\r\n\t<meta content=\"使用SVG实现各类图形\" name=\"description\">\r\n\t<title>SVG奇思妙想</title>\r\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"../static/css/reset.css\">\r\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"../static/css/index.css\"></head>\r\n\t<style>\r\n\t#cnzz_stat_icon_1259441963 {\r\n\t\tdisplay: block;\r\n\t\twidth: 0;\r\n\t\theight: 0;\r\n\t\toverflow: hidden;\r\n\t}\r\n\t</style>\r\n\r\n<body>\r\n\t<h1 style=\"height: 0;overflow: hidden;\">SVG奇思妙想，使用SVG实现各类图形</h1>\r\n\t<a style=\"width:149px;height:149px;position:fixed;top:0;right:0;z-index:9999;\" href=\"https://github.com/chokcoco/svg\" target=\"_blank\">\r\n\t\t<img src=\"http://chokcoco.github.io/demo/curveJS/images/forkme.png\"></a>\r\n\t<div class=\"container\">\r\n\t\t<!-- circle-->\r\n\t\t<section id=\"circle\" class=\"code-wrap cf\">\r\n\t\t\t<div class=\"css-live-wrap\">\r\n\t\t\t\t<summary>圆形</summary>\r\n\t\t\t\t<hgroup class=\"circle\">\r\n\t\t\t\t\t<!-- <svg class=\"circle-svg\"></svg> -->\r\n\t\t\t\t</hgroup>\r\n\t\t\t</div>\r\n\t\t\t<style class=\"code\" contenteditable=\"true\">\r\n      .circle {\r\n      \tposition: absolute;\r\n      \twidth: 200px;\r\n      \theight: 200px;\r\n      \ttop: 50%;\r\n      \tleft: 50%;\r\n      \ttransform: translate(-50%, -50%);\r\n      \tbackground-color: deeppink;\r\n      \t-webkit-clip-path: circle(100px at 100px 100px);\r\n      }\r\n      .circle-svg {\r\n      \twidth: 0;\r\n      \theight: 0;\r\n      }\r\n\t\t\t</style>\r\n\t\t</section>\r\n\r\n\t\t<!-- polygon-->\r\n\t\t<section id=\"polygon\" class=\" code-wrap cf\">\r\n\t\t\t<div class=\"css-live-wrap\">\r\n\t\t\t\t<summary>SVG多边形</summary>\r\n\t\t\t\t<summary>hover、active 可变换效果</summary>\r\n\t\t\t\t<hgroup class=\"polygon\">\r\n\t\t\t\t\t<svg class=\"polygon-svg\">\r\n\t\t\t\t\t\t<defs>\r\n\t\t\t\t\t\t\t<clipPath id=\"clip-svg-demo\"clipPathUnits=\"objectBoundingBox\">\r\n\t\t\t\t\t\t\t\t<polygon points=\"0.25 0, 0.75 0, 1 0.5, 0.75 1, 0.25 1, 0 0.5\"/>\r\n\t\t\t\t\t\t\t</clipPath>\r\n\t\t\t\t\t\t</defs>\r\n\t\t\t\t\t</svg>\r\n\t\t\t\t</hgroup>\r\n\t\t\t</div>\r\n\t\t\t<style class=\"code\" contenteditable=\"true\" >\r\n      .polygon {\r\n      \tposition: absolute;\r\n      \twidth: 200px;\r\n      \theight: 200px;\r\n      \ttop: 50%;\r\n      \tleft: 50%;\r\n      \ttransform: translate(-50%, -50%);\r\n      \tbackground-color: darksalmon;\r\n      \ttransition:.3s;\r\n      \t-webkit-clip-path: polygon(33% 0%, 66% 0%, 100% 50%, 66% 100%, 33% 100%, 0% 50%, 0% 50%, 0% 50%, 0% 50%);\r\n      \tclip-path: polygon(33% 0%, 66% 0%, 100% 50%, 66% 100%, 33% 100%, 0% 50%, 0% 50%, 0% 50%, 0% 50%);\r\n      }\r\n      .polygon:hover{\r\n      \tbackground-color: aquamarine;\r\n      \t-webkit-clip-path: polygon(50% 0%, 83% 12%, 100% 43%, 94% 78%, 68% 100%, 32% 100%, 6% 78%, 0% 43%, 17% 12%);\r\n      \tclip-path: polygon(50% 0%, 83% 12%, 100% 43%, 94% 78%, 68% 100%, 32% 100%, 6% 78%, 0% 43%, 17% 12%);\r\n      }\r\n      .polygon:active{\r\n      \tbackground-color: darkmagenta;\r\n      \t-webkit-clip-path: polygon(50% 0%,50% 0%,50% 0%,50% 0%,50% 0%,50% 0%,50% 0%, 0% 100%, 100% 100%);\r\n      \tclip-path: polygon(50% 0%,50% 0%,50% 0%,50% 0%,50% 0%,50% 0%,50% 0%, 0% 100%, 100% 100%);\r\n      }\r\n      .polygon-svg {\r\n      \twidth: 0;\r\n      \theight: 0;\r\n      }\r\n\t\t\t</style>\r\n\t\t</section>\r\n\r\n\t\t<!-- polygon-animate -->\r\n\t\t<section id=\"polygon-animate\" class=\"code-wrap cf\">\r\n\t\t\t<div class=\"css-live-wrap\">\r\n\t\t\t\t<summary>SVG多边形自由切换动画</summary>\r\n\t\t\t\t<summary>SVG动画的前提是，确定最终形状的点的数目，必须和初始形状的点的数目一样</summary>\r\n\t\t\t\t<hgroup class=\"polygon-animate\">\r\n\t\t\t\t\t<svg class=\"polygon-animate-svg\">\r\n\t\t\t\t\t\t<defs>\r\n\t\t\t\t\t\t\t<clipPath id=\"clip-svg-demo\"clipPathUnits=\"objectBoundingBox\">\r\n\t\t\t\t\t\t\t\t<polygon-animate points=\"0.25 0, 0.75 0, 1 0.5, 0.75 1, 0.25 1, 0 0.5\"/>\r\n\t\t\t\t\t\t\t</clipPath>\r\n\t\t\t\t\t\t</defs>\r\n\t\t\t\t\t</svg>\r\n\t\t\t\t</hgroup>\r\n\t\t\t</div>\r\n\t\t\t<style class=\"code\" contenteditable=\"true\">\r\n      .polygon-animate {\r\n      \tposition: absolute;\r\n      \twidth: 200px;\r\n      \theight: 200px;\r\n      \ttop: 50%;\r\n      \tleft: 50%;\r\n      \ttransform: translate(-50%, -50%);\r\n      \tbackground-color: crimson;\r\n      \ttransition:.3s;\r\n      \t-webkit-clip-path: polygon(50% 0%, 0% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%);\r\n      \tclip-path: polygon(50% 0%, 0% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%);\r\n      \tanimation:polygon-ani 7s linear infinite;\r\n      \t-webkit-animation:polygon-ani 7s linear infinite;\r\n      }\r\n      @keyframes polygon-ani{\r\n      \t10%{\r\n      \t\tbackground-color: darkorange;\r\n      \t\t-webkit-clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%, 0% 50%, 0% 50%, 0% 50%, 0% 50%, 0% 50%);\r\n      \t\tclip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%, 0% 50%, 0% 50%, 0% 50%, 0% 50%, 0% 50%);\r\n      \t}\r\n      \t14%{\r\n      \t\t-webkit-clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%, 0% 50%, 0% 50%, 0% 50%, 0% 50%, 0% 50%);\r\n      \t\tclip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%, 0% 50%, 0% 50%, 0% 50%, 0% 50%, 0% 50%);\r\n      \t}\r\n      \t24%{\r\n      \t\tbackground-color: lemonchiffon;\r\n      \t\t-webkit-clip-path: polygon(100% 38%, 82% 100%, 82% 100%, 18% 100%, 0% 38%, 0% 38%, 0% 38%, 0% 38%, 50% 0%);\r\n      \t\tclip-path: polygon(100% 38%, 82% 100%, 82% 100%, 18% 100%, 0% 38%, 0% 38%, 0% 38%, 0% 38%, 50% 0%);\r\n      \t}\r\n      \t28%{\r\n      \t\t-webkit-clip-path: polygon(100% 38%, 82% 100%, 82% 100%, 18% 100%, 0% 38%, 0% 38%, 0% 38%, 0% 38%, 50% 0%);\r\n      \t\tclip-path: polygon(100% 38%, 82% 100%, 82% 100%, 18% 100%, 0% 38%, 0% 38%, 0% 38%, 0% 38%, 50% 0%);\r\n      \t}\r\n      \t38%{\r\n      \t\tbackground-color: darkturquoise;\r\n      \t\t-webkit-clip-path: polygon(50% 0%, 100% 25%, 100% 75%,100% 75%, 50% 100%, 0% 75%, 0% 75%, 0% 25%, 0% 25%);\r\n      \t\tclip-path: polygon(50% 0%, 100% 25%, 100% 75%,100% 75%, 50% 100%, 0% 75%, 0% 75%, 0% 25%, 0% 25%);\r\n      \t}\r\n      \t42%{\r\n      \t\t-webkit-clip-path: polygon(50% 0%, 100% 25%, 100% 75%,100% 75%, 50% 100%, 0% 75%, 0% 75%, 0% 25%, 0% 25%);\r\n      \t\tclip-path: polygon(50% 0%, 100% 25%, 100% 75%,100% 75%, 50% 100%, 0% 75%, 0% 75%, 0% 25%, 0% 25%);\r\n      \t}\r\n      \t52%{\r\n      \t\tbackground-color: darkcyan;\r\n      \t\t-webkit-clip-path: polygon(50% 0%, 90% 20%, 100% 60%, 75% 100%, 25% 100%, 25% 100%, 0% 60%, 10% 20%, 50% 0%);\r\n      \t\tclip-path: polygon(50% 0%, 90% 20%, 100% 60%, 75% 100%, 25% 100%, 25% 100%, 0% 60%, 10% 20%, 50% 0%);\r\n      \t}\r\n      \t56%{\r\n      \t\t-webkit-clip-path: polygon(50% 0%, 90% 20%, 100% 60%, 75% 100%, 25% 100%, 25% 100%, 0% 60%, 10% 20%, 50% 0%);\r\n      \t\tclip-path: polygon(50% 0%, 90% 20%, 100% 60%, 75% 100%, 25% 100%, 25% 100%, 0% 60%, 10% 20%, 50% 0%);\r\n      \t}\r\n      \t66%{\r\n      \t\tbackground-color: deepskyblue;\r\n      \t\t-webkit-clip-path: polygon(30% 0%, 70% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);\r\n      \t\tclip-path: polygon(30% 0%, 70% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);\r\n      \t}\r\n      \t70%{\r\n      \t\t-webkit-clip-path: polygon(30% 0%, 70% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);\r\n      \t\tclip-path: polygon(30% 0%, 70% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);\r\n      \t}\r\n      \t80%{\r\n      \t\tbackground-color: indigo;\r\n      \t\t-webkit-clip-path: polygon(83% 12%, 100% 43%, 94% 78%, 68% 100%, 32% 100%, 6% 78%, 0% 43%, 17% 12%, 50% 0%);\r\n      \t\tclip-path: polygon(83% 12%, 100% 43%, 94% 78%, 68% 100%, 32% 100%, 6% 78%, 0% 43%, 17% 12%, 50% 0%);\r\n      \t}\r\n      \t84%{\r\n      \t\t-webkit-clip-path: polygon(83% 12%, 100% 43%, 94% 78%, 68% 100%, 32% 100%, 6% 78%, 0% 43%, 17% 12%, 50% 0%);\r\n      \t\tclip-path: polygon(83% 12%, 100% 43%, 94% 78%, 68% 100%, 32% 100%, 6% 78%, 0% 43%, 17% 12%, 50% 0%);\r\n      \t}94%{\r\n      \t\tbackground-color: crimson;\r\n      \t\t-webkit-clip-path: polygon(50% 0%, 0% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%);\r\n      \t\tclip-path: polygon(50% 0%, 0% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 100% 100%);\r\n      \t}\r\n      }\r\n      .polygon-animate-svg {\r\n      \twidth: 0;\r\n      \theight: 0;\r\n      }\r\n\t\t\t</style>\r\n\t\t</section>\r\n\r\n\t\t<!-- arrow -->\r\n\t\t<section id=\"arrow\" class=\"code-wrap cf\">\r\n\t\t\t<div class=\"css-live-wrap\">\r\n\t\t\t\t<summary>气泡对话框</summary>\r\n\t\t\t\t<hgroup class=\"arrow\">\r\n\t\t\t\t\t<svg class=\"arrow-svg\"></svg>\r\n\t\t\t\t</hgroup>\r\n\t\t\t</div>\r\n\t\t\t<style class=\"code\" contenteditable=\"true\">\r\n      .arrow {\r\n      \tposition: absolute;\r\n      \twidth: 200px;\r\n      \theight: 200px;\r\n      \ttop: 50%;\r\n      \tleft: 50%;\r\n      \ttransform: translate(-50%, -50%);\r\n      \tbackground-color: darkorchid;\r\n      \t-webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 75%, 75% 75%, 75% 100%, 50% 75%, 0% 75%);\r\n      \tclip-path: polygon(0% 0%, 100% 0%, 100% 75%, 75% 75%, 75% 100%, 50% 75%, 0% 75%);\r\n      }\r\n      .arrow-svg {\r\n      \twidth: 0;\r\n      \theight: 0;\r\n      }\r\n\t\t\t</style>\r\n\t\t</section>\r\n\r\n\t\t<!-- star -->\r\n\t\t<section id=\"close\" class=\"code-wrap cf\">\r\n\t\t\t<div class=\"css-live-wrap\">\r\n\t\t\t\t<summary>Close icon</summary>\r\n\t\t\t\t<hgroup class=\"close\">\r\n\t\t\t\t\t<svg class=\"close-svg\"></svg>\r\n\t\t\t\t</hgroup>\r\n\t\t\t</div>\r\n\t\t\t<style class=\"code\" contenteditable=\"true\">\r\n      .close {\r\n      \tposition: absolute;\r\n      \twidth: 200px;\r\n      \theight: 200px;\r\n      \ttop: 50%;\r\n      \tleft: 50%;\r\n      \ttransform: translate(-50%, -50%);\r\n      \tbackground-color: gainsboro;\r\n      \t-webkit-clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);\r\n      \tclip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);\r\n      }\r\n      .close-svg {\r\n      \twidth: 0;\r\n      \theight: 0;\r\n      }\r\n\t\t\t</style>\r\n\t\t</section>\r\n\r\n\t\t<!-- star -->\r\n\t\t<section id=\"star\" class=\"code-wrap cf\">\r\n\t\t\t<div class=\"css-live-wrap\">\r\n\t\t\t\t<summary>star</summary>\r\n\t\t\t\t<hgroup class=\"star\">\r\n\t\t\t\t\t<svg class=\"star-svg\"></svg>\r\n\t\t\t\t</hgroup>\r\n\t\t\t</div>\r\n\t\t\t<style class=\"code\" contenteditable=\"true\">\r\n      .star {\r\n      \tposition: absolute;\r\n      \twidth: 200px;\r\n      \theight: 200px;\r\n      \ttop: 50%;\r\n      \tleft: 50%;\r\n      \ttransform: translate(-50%, -50%);\r\n      \tbackground-color: gold;\r\n      \t-webkit-clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);\r\n      \tclip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);\t\t\t}\r\n      .star-svg {\r\n      \twidth: 0;\r\n      \theight: 0;\r\n      }\r\n\t\t\t</style>\r\n\t\t</section>\r\n\r\n\t\t<!-- star -->\r\n\t\t<section id=\"triangle2rect\" class=\"code-wrap cf\">\r\n\t\t\t<div class=\"css-live-wrap\">\r\n\t\t\t\t<summary>triangle2rect</summary>\r\n\t\t\t\t<summary>clip-path 图形</summary>\r\n\t\t\t\t<hgroup class=\"triangle2rect\">\r\n\t\t\t\t\t<div class=\"a\"></div>\r\n\t\t\t\t\t<div class=\"b\"></div>\r\n\t\t\t\t\t<div class=\"c\"></div>\r\n\t\t\t\t\t<div class=\"d\"></div>\r\n\t\t\t\t</hgroup>\r\n\t\t\t</div>\r\n\t\t\t<style class=\"code\" contenteditable=\"true\">\r\n      .triangle2rect {\r\n      \tposition: absolute;\r\n      \twidth: 100px;\r\n      \theight: 100px;\r\n      \ttop: 50%;\r\n      \tleft: 50%;\r\n      \ttransform: translate(-50%, -50%);\r\n      \t-webkit-animation:aniContainer 2s infinite alternate;\r\n      }\r\n      .triangle2rect div{\r\n        position:absolute;\r\n        top:0;\r\n        left:0;\r\n        width:100%;\r\n        height:100%;\r\n      }\r\n      .a{\r\n        background:deeppink;\r\n        -webkit-clip-path: polygon(0% 0%, 0% 100%, 50% 50%);\r\n        animation:a 2s infinite alternate;\r\n        -webkit-animation:a 2s infinite alternate;\r\n      }\r\n      .b{\r\n        background:deeppink;\r\n        -webkit-clip-path: polygon(0% 0%, 100% 0%, 50% 50%);\r\n        animation:b 2s infinite alternate;\r\n        -webkit-animation:b 2s infinite alternate;\r\n      }\r\n      .c{\r\n        background:deeppink;\r\n        -webkit-clip-path: polygon(100% 0%, 100% 100%, 50% 50%);\r\n        animation:c 2s infinite alternate;\r\n        -webkit-animation:c 2s infinite alternate;\r\n      }\r\n      .d{\r\n        background:deeppink;\r\n        -webkit-clip-path: polygon(100% 100%, 0% 100%, 50% 50%);\r\n        animation:d 2s infinite alternate;\r\n        -webkit-animation:d 2s infinite alternate;\r\n      }\r\n      @-webkit-keyframes a{\r\n        0%,10%{\r\n          background:deeppink;\r\n          -webkit-clip-path: polygon(0% 0%, 0% 100%, 50% 50%);\r\n        }\r\n        90%,100%{\r\n          background:#069;\r\n          -webkit-clip-path: polygon(0% 100%, 25% 100%, 12.5% 0%);\r\n        }\r\n      }\r\n      @-webkit-keyframes b{\r\n        0%,10%{\r\n          background:deeppink;\r\n          -webkit-clip-path: polygon(0% 0%, 100% 0%, 50% 50%);\r\n        }\r\n        90%,100%{\r\n          background:#095;\r\n          -webkit-clip-path: polygon(25% 0%, 50%  0%,37.5% 100%);\r\n        }\r\n      }\r\n      @-webkit-keyframes c{\r\n        0%,10%{\r\n          background:deeppink;\r\n          -webkit-clip-path: polygon(100% 0%, 100% 100%, 50% 50%);\r\n        }\r\n        90%,100%{\r\n          background:#f80;\r\n          -webkit-clip-path: polygon(62.5% 0%,75% 100%,50% 100%);\r\n        }\r\n      }\r\n      @-webkit-keyframes d{\r\n        0%,10%{\r\n          background:deeppink;\r\n          -webkit-clip-path: polygon(100% 100%, 0% 100%, 50% 50%);\r\n        }\r\n        90%,100%{\r\n          background:#f69;\r\n          -webkit-clip-path: polygon(100% 0%,87.5% 100%, 75% 0%);\r\n        }\r\n      }\r\n      @-webkit-keyframes aniContainer{\r\n        0%,10%{\r\n          width:100px;\r\n          height:100px;\r\n        }\r\n        90%,100%{\r\n          width:250px;\r\n          height:60px;\r\n        }\r\n      }\r\n\t\t\t</style>\r\n\t\t</section>\r\n\r\n\t\t<!-- 使用 SVG PATH 绘制的矩形 -->\r\n\t\t<section id=\"circle-load-rect\" class=\"code-wrap cf\">\r\n\t\t\t<div class=\"css-live-wrap\">\r\n\t\t\t\t<summary>使用 SVG PATH 绘制的矩形</summary>\r\n\t\t\t\t<summary>使用审查元素看看 html 结构，绘画内容在 svg 标签内</summary>\r\n\t\t\t\t<hgroup class=\"circle-load-rect\">\r\n\t\t\t\t\t<svg class=\"circle-load-rect-svg\" width=\"200px\" height=\"200px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n\t\t\t\t\t\t<path d=\"M20 20 H 180 V 180 H 20 Z\" fill=\"transparent\" stroke=\"black\"/>\r\n\t\t\t\t\t</svg>\r\n\t\t\t\t</hgroup>\r\n\t\t\t</div>\r\n\t\t\t<style class=\"code\" contenteditable=\"true\">\r\n      .circle-load-rect {\r\n      \tposition: absolute;\r\n      \twidth: 200px;\r\n      \theight: 200px;\r\n      \ttop: 50%;\r\n      \tleft: 50%;\r\n      \ttransform: translate(-50%, -50%);\r\n      }\r\n\t\t\t</style>\r\n\t\t</section>\r\n\r\n\t\t<!-- 使用 SVG PATH 绘制平滑曲线 -->\r\n\t\t<section id=\"circle-load-q\" class=\"code-wrap cf\">\r\n\t\t\t<div class=\"css-live-wrap\">\r\n\t\t\t\t<summary>使用 SVG PATH 绘制平滑曲线</summary>\r\n\t\t\t\t<summary>使用审查元素看看 html 结构，绘画内容在 svg 标签内</summary>\r\n\t\t\t\t<summary>本曲线使用二次贝塞尔曲线生成</summary>\r\n\t\t\t\t<hgroup class=\"circle-load-q\">\r\n\t\t\t\t\t<svg class=\"circle-load-q-svg\" width=\"200px\" height=\"200px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n\t\t\t\t\t\t<path d=\"M20 100 Q 7 14, 171 190\" fill=\"transparent\" stroke=\"black\"/>\r\n\t\t\t\t\t</svg>\r\n\t\t\t\t</hgroup>\r\n\t\t\t</div>\r\n\t\t\t<style class=\"code\" contenteditable=\"true\">\r\n      .circle-load-q {\r\n      \tposition: absolute;\r\n      \twidth: 200px;\r\n      \theight: 200px;\r\n      \ttop: 50%;\r\n      \tleft: 50%;\r\n      \ttransform: translate(-50%, -50%);\r\n      }\r\n\t\t\t</style>\r\n\t\t</section>\r\n\r\n\t\t<!-- 使用 SVG PATH 绘制平滑曲线 -->\r\n\t\t<section id=\"circle-load-s\" class=\"code-wrap cf\">\r\n\t\t\t<div class=\"css-live-wrap\">\r\n\t\t\t\t<summary>使用 SVG PATH 绘制平滑曲线</summary>\r\n\t\t\t\t<summary>使用审查元素看看 html 结构，绘画内容在 svg 标签内</summary>\r\n\t\t\t\t<summary>本曲线使用三次贝塞尔曲线生成</summary>\r\n\t\t\t\t<hgroup class=\"circle-load-s\">\r\n\t\t\t\t\t<svg class=\"circle-load-s-svg\" width=\"200px\" height=\"200px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n\t\t\t\t\t\t<path d=\"M20 100 C 97 50, 98 155, 176 99\" fill=\"transparent\" stroke=\"black\"/>\r\n\t\t\t\t\t</svg>\r\n\t\t\t\t</hgroup>\r\n\t\t\t</div>\r\n\t\t\t<style class=\"code\" contenteditable=\"true\">\r\n      .circle-load-s {\r\n      \tposition: absolute;\r\n      \twidth: 200px;\r\n      \theight: 200px;\r\n      \ttop: 50%;\r\n      \tleft: 50%;\r\n      \ttransform: translate(-50%, -50%);\r\n      }\r\n\t\t\t</style>\r\n\t\t</section>\r\n\r\n\t\t<!-- 使用 SVG PATH 绘制平滑曲线，用于文字效果 -->\r\n\t\t<section id=\"circle-word\" class=\"code-wrap cf\">\r\n\t\t\t<div class=\"css-live-wrap\">\r\n\t\t\t\t<summary>使用 SVG PATH 绘制平滑曲线，用于文字效果</summary>\r\n\t\t\t\t<summary>使用审查元素看看 html 结构，绘画内容在 svg 标签内</summary>\r\n\t\t\t\t<summary>可以让文字跟随 SVG 路径做出各种形状</summary>\r\n\t\t\t\t<hgroup class=\"circle-word\">\r\n\t\t\t\t\t<svg width=\"400px\" height=\"300px\" viewBox=\"0 0 400 200\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n\t\t\t\t\t\t<defs>\r\n\t\t\t\t\t\t\t<path id=\"textCircle\" d=\"M 20 100 A 80 80 0 0 0 180 100 A 80 80 0 0 0 20 100\" fill=\"none\" stroke=\"#333\" />\r\n\t\t\t\t\t\t\t<path id=\"textCircle2\" d=\"M220 100 C 353 9, 245 190, 389 86\" fill=\"none\" stroke=\"black\"/>\r\n\t\t\t\t\t\t</defs>\r\n\t\t\t\t\t\t<text class=\"textCircle\" fill=\"yellowgreen\">\r\n\t\t\t\t\t\t\t<textPath xlink:href=\"#textCircle\">这是一段随着path路径绘制的文字</textPath>\r\n\t\t\t\t\t\t</text>\r\n\t\t\t\t\t\t<text class=\"textCircle2\" fill=\"deeppink\">\r\n\t\t\t\t\t\t\t<textPath xlink:href=\"#textCircle2\">这是另一段随path路径绘制的文字</textPath>\r\n\t\t\t\t\t\t</text>\r\n\t\t\t\t\t</svg>\r\n\t\t\t\t</hgroup>\r\n\t\t\t</div>\r\n\t\t\t<style class=\"code\" contenteditable=\"true\">\r\n      .circle-word {\r\n      \tposition: absolute;\r\n      \twidth: 400px;\r\n      \theight: 200px;\r\n      \ttop: 50%;\r\n      \tleft: 50%;\r\n      \ttransform: translate(-50%, -50%);\r\n      }\r\n      .textCircle{\r\n      \tfont-size:20px;\r\n      \tletter-spacing:4px;\r\n      }\r\n      .textCircle2{\r\n      \tfont-size:12px;\r\n      \tletter-spacing:1px;\r\n      }\r\n\t\t\t</style>\r\n\t\t</section>\r\n\r\n    <!-- 使用 SVG 绘制的文字效果 -->\r\n    <section id=\"svg-word-filter\" class=\"code-wrap cf\">\r\n      <div class=\"css-live-wrap\" >\r\n        <summary>使用 SVG 绘制的文字阴影效果</summary>\r\n        <summary>使用审查元素看看 html 结构，绘画内容及滤镜定义在 svg 标签内</summary>\r\n        <summary>运用了大量 SVG 滤镜</summary>\r\n        <hgroup class=\"svg-word-filter\">\r\n        <svg version=\"1.1\" id=\"Ebene_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n           width=\"600px\" height=\"200px\" viewBox=\"0 0 600 100\">\r\n          <defs>\r\n            <pattern id=\"filter-pattern\" width=\"1\" height=\"3\" patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(30)\">\r\n              <rect x=\"0\" y=\"0\" width=\"1\" height=\".8\" fill=\"#333\"/>\r\n            </pattern>\r\n\r\n            <text id=\"filter-text\" x=\"50%\" y=\"50%\" dy=\".3em\" text-anchor=\"middle\">SVG filter & mask</text>\r\n\r\n            <mask id=\"filter-mask\">\r\n              <rect x=\"0\" y=\"0\" width=\"100%\" height=\"100%\" fill=\"#fff\" />\r\n              <use x=\"-6\" y=\"-6\" stroke=\"#666\" stroke-width=\"5\" xlink:href=\"#filter-text\" opacity=\"1\" fill=\"#000\"/>\r\n            </mask>\r\n          </defs>\r\n\r\n          <use x=\"6\" y=\"6\" xlink:href=\"#filter-text\" opacity=\"1\" fill=\"url(#filter-pattern)\" mask=\"url(#filter-mask)\"/>\r\n          <use x=\"0\" y=\"0\" xlink:href=\"#filter-text\" fill=\"#000\"/>\r\n        </svg>\r\n        </hgroup>\r\n      </div>\r\n      <style class=\"code\" contenteditable=\"true\">\r\n      .svg-word-filter {\r\n        position: absolute;\r\n        width: 600px;\r\n        height: 200px;\r\n        top: 50%;\r\n        left: 50%;\r\n        transform: translate(-50%, -50%);\r\n      }\r\n      #filter-text{\r\n        font-family:Raleway, Verdana, sans-serif, 微軟正黑體, 微软雅黑, serif, 'Droid Serif', 'Helvetica Neue', Helvetica, Arial;\r\n        font-size:64px;\r\n      }\r\n      </style>\r\n    </section>\r\n\r\n\t\t<!-- 使用 SVG 绘制的文字效果 -->\r\n\t\t<section id=\"svg-word-glitch\" class=\"code-wrap cf\">\r\n\t\t\t<div class=\"css-live-wrap\" >\r\n\t\t\t\t<summary>使用 SVG 绘制的文字故障效果</summary>\r\n\t\t\t\t<summary>使用审查元素看看 html 结构，绘画内容及滤镜定义在 svg 标签内</summary>\r\n\t\t\t\t<summary>运用了大量 SVG 滤镜</summary>\r\n\t\t\t\t<hgroup class=\"svg-word-glitch\">\r\n\t\t\t\t<svg version=\"1.1\" id=\"Ebene_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n\t\t\t\t\t width=\"600px\" height=\"200px\" viewBox=\"0 0 600 100\">\r\n\t\t\t\t\t<defs>\r\n\t\t\t\t\t\t<filter id=\"filter\">\r\n\t\t\t\t\t\t\t<feFlood flood-color=\"white\" result=\"white\" />\r\n\t\t\t\t\t\t\t<feFlood flood-color=\"red\" result=\"flood1\" />\r\n\t\t\t\t\t\t\t<feFlood flood-color=\"limegreen\" result=\"flood2\" />\r\n\t\t\t\t\t\t\t<feOffset in=\"SourceGraphic\" dx=\"3\" dy=\"0\" result=\"off1a\"/>\r\n\t\t\t\t\t\t\t<feOffset in=\"SourceGraphic\" dx=\"2\" dy=\"0\" result=\"off1b\"/>\r\n\t\t\t\t\t\t\t<feOffset in=\"SourceGraphic\" dx=\"-3\" dy=\"0\" result=\"off2a\"/>\r\n\t\t\t\t\t\t\t<feOffset in=\"SourceGraphic\" dx=\"-2\" dy=\"0\" result=\"off2b\"/>\r\n\t\t\t\t\t\t\t<feComposite in=\"flood1\" in2=\"off1a\" operator=\"in\"  result=\"comp1\" />\r\n\t\t\t\t\t\t\t<feComposite in=\"flood2\" in2=\"off2a\" operator=\"in\" result=\"comp2\" />\r\n\t\t\t\t\t\t\t<feMerge x=\"0\" width=\"100%\" result=\"merge1\">\r\n\t\t\t\t\t\t\t<feMergeNode in = \"white\" />\r\n\t\t\t\t\t\t\t<feMergeNode in = \"comp1\" />\r\n\t\t\t\t\t\t\t<feMergeNode in = \"off1b\" />\r\n\t\t\t\t\t\t\t<animate\r\n\t\t\t\t\t\t\t\tattributeName=\"y\"\r\n\t\t\t\t\t    \tid = \"y\"\r\n\t\t\t\t\t    \tdur =\"4s\"\r\n\t\t\t\t\t    \tvalues = '104px; 104px; 30px; 105px; 30px; 2px; 2px; 50px; 40px; 105px; 105px; 20px; 6ßpx; 40px; 104px; 40px; 70px; 10px; 30px; 104px; 102px'\r\n\t\t\t\t\t    \tkeyTimes = '0; 0.362; 0.368; 0.421; 0.440; 0.477; 0.518; 0.564; 0.593; 0.613; 0.644; 0.693; 0.721; 0.736; 0.772; 0.818; 0.844; 0.894; 0.925; 0.939; 1'\r\n\t\t\t\t\t    \trepeatCount = \"indefinite\" />\r\n\t\t\t\t\t\t\t<animate attributeName=\"height\"\r\n\t\t\t\t\t    \tid = \"h\"\r\n\t\t\t\t\t    \tdur =\"4s\"\r\n\t\t\t\t\t    \tvalues = '10px; 0px; 10px; 30px; 50px; 0px; 10px; 0px; 0px; 0px; 10px; 50px; 40px; 0px; 0px; 0px; 40px; 30px; 10px; 0px; 50px'\r\n\t\t\t\t\t    \tkeyTimes = '0; 0.362; 0.368; 0.421; 0.440; 0.477; 0.518; 0.564; 0.593; 0.613; 0.644; 0.693; 0.721; 0.736; 0.772; 0.818; 0.844; 0.894; 0.925; 0.939; 1'\r\n\t\t\t\t\t    \trepeatCount = \"indefinite\" />\r\n\t\t\t\t\t\t\t</feMerge>\r\n\t\t\t\t\t\t\t<feMerge x=\"0\" width=\"100%\" y=\"60px\" height=\"65px\" result=\"merge2\">\r\n\t\t\t\t\t\t\t<feMergeNode in = \"white\" />\r\n\t\t\t\t\t\t\t<feMergeNode in = \"comp2\" />\r\n\t\t\t\t\t\t\t<feMergeNode in = \"off2b\" />\r\n\t\t\t\t\t\t\t<animate attributeName=\"y\"\r\n\t\t\t\t\t    \tid = \"y\"\r\n\t\t\t\t\t    \tdur =\"4s\"\r\n\t\t\t\t\t    \tvalues = '103px; 104px; 69px; 53px; 42px; 104px; 78px; 89px; 96px; 100px; 67px; 50px; 96px; 66px; 88px; 42px; 13px; 100px; 100px; 104px;'\r\n\t\t\t\t\t    \tkeyTimes = '0; 0.055; 0.100; 0.125; 0.159; 0.182; 0.202; 0.236; 0.268; 0.326; 0.357; 0.400; 0.408; 0.461; 0.493; 0.513; 0.548; 0.577; 0.613; 1'\r\n\t\t\t \t\t    \trepeatCount = \"indefinite\" />\r\n\t\t\t\t\t\t\t<animate attributeName=\"height\"\r\n\t\t\t\t    \t\tid = \"h\"\r\n\t\t\t\t    \t\tdur = \"4s\"\r\n\t\t\t\t\t\t\t\tvalues = '0px; 0px; 0px; 16px; 16px; 12px; 12px; 0px; 0px; 5px; 10px; 22px; 33px; 11px; 0px; 0px; 10px'\r\n\t\t\t\t    \t\tkeyTimes = '0; 0.055; 0.100; 0.125; 0.159; 0.182; 0.202; 0.236; 0.268; 0.326; 0.357; 0.400; 0.408; 0.461; 0.493; 0.513;  1'\r\n\t\t\t\t    \t\trepeatCount = \"indefinite\" />\r\n\t\t\t\t\t\t\t</feMerge>\r\n\t\t\t\t\t\t\t<feMerge>\r\n\t\t\t\t\t\t\t<feMergeNode in=\"SourceGraphic\" />\r\n\t\t\t\t\t\t\t<feMergeNode in=\"merge1\" />\r\n\t\t\t\t\t\t\t<feMergeNode in=\"merge2\" />\r\n\t\t\t\t\t\t\t</feMerge>\r\n\t\t\t\t\t\t</filter>\r\n\t\t\t\t\t</defs>\r\n\t\t\t\t\t<g>\r\n\t\t\t\t\t\t<text x=\"50%\" y=\"50%\" dy=\".3em\" text-anchor=\"middle\" class=\"word-glitch\">Amazing SVG</text>\r\n\t\t\t\t\t</g>\r\n\t\t\t\t</svg>\r\n\t\t\t\t</hgroup>\r\n\t\t\t</div>\r\n\t\t\t<style class=\"code\" contenteditable=\"true\">\r\n      .svg-word-glitch {\r\n      \tposition: absolute;\r\n      \twidth: 600px;\r\n      \theight: 200px;\r\n      \ttop: 50%;\r\n      \tleft: 50%;\r\n      \ttransform: translate(-50%, -50%);\r\n      }\r\n      .word-glitch{\r\n      \tfill: black;\r\n      \tfilter: url(#filter);\r\n      \tfont-family: Raleway, Verdana, sans-serif, 微軟正黑體, 微软雅黑, serif, 'Droid Serif', 'Helvetica Neue', Helvetica, Arial;\r\n      \tfont-size: 80px;\r\n      \t-webkit-font-smoothing: antialiased;\r\n      }\r\n\t\t\t</style>\r\n\t\t</section>\r\n\r\n    <!-- 使用 SVG 绘制的文字效果 -->\r\n    <section id=\"svg-word-underwater\" class=\"code-wrap cf\">\r\n      <div class=\"css-live-wrap\" >\r\n        <summary>使用 SVG 绘制的文字在水下的效果（textUnderWater）</summary>\r\n        <summary>使用审查元素看看 html 结构，绘画内容及滤镜定义在 svg 标签内</summary>\r\n        <summary>运用了大量 SVG 滤镜</summary>\r\n        <hgroup class=\"svg-word-underwater\">\r\n        <svg version=\"1.1\" id=\"Ebene_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n           width=\"600px\" height=\"200px\" viewBox=\"0 0 600 100\">\r\n          <defs>\r\n            <filter id=\"textFilter\">\r\n              <feTurbulence type=\"fractalNoise\" baseFrequency=\"0.015\" numOctaves=\"2\" result=\"turbulence\" data-filterId=\"5\" />\r\n              <feDisplacementMap id=\"distortion\" in=\"SourceGraphic\" in2=\"turbulence\" scale=\"20\">\r\n                <animate attributeName=\"scale\" values=\"10; 60; 10\" dur=\"20s\" repeatCount=\"indefinite\"></animate>\r\n              </feDisplacementMap>\r\n            </filter>\r\n          </defs>\r\n          <g>\r\n            <text x=\"50%\" y=\"50%\" dy=\".3em\" text-anchor=\"middle\" class=\"word-underwater\">textUnderWater</text>\r\n          </g>\r\n        </svg>\r\n        </hgroup>\r\n      </div>\r\n      <style class=\"code\" contenteditable=\"true\">\r\n      .svg-word-underwater {\r\n        position: absolute;\r\n        width: 600px;\r\n        height: 200px;\r\n        top: 50%;\r\n        left: 50%;\r\n        transform: translate(-50%, -50%);\r\n      }\r\n      .word-underwater{\r\n        fill: #3d56ce;\r\n        filter: url(#textFilter);\r\n        font-family: Raleway, Verdana, sans-serif, 微軟正黑體, 微软雅黑, serif, 'Droid Serif', 'Helvetica Neue', Helvetica, Arial;;\r\n        font-size: 72px;\r\n      }\r\n      </style>\r\n    </section>\r\n\r\n    <!-- 使用 SVG stroke 虚线效果，用于绘制文字边框动画 -->\r\n    <section id=\"svg-border-animation\" class=\"code-wrap cf\">\r\n      <div class=\"css-live-wrap\">\r\n        <summary>使用 SVG stroke 虚线效果，绘制文字边框动画</summary>\r\n        <summary>使用审查元素看看 html 结构，绘画内容在 svg 标签内</summary>\r\n        <summary>改变 SVG 元素的虚线效果生成补间动画</summary>\r\n        <hgroup class=\"svg-border-animation\">\r\n          <svg viewBox=\"0 0 320 60\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n            <rect class=\"shape\" height=\"60\" width=\"320\" />\r\n          </svg>\r\n            <div class=\"hover-text\">HOVER ME</div>\r\n        </hgroup>\r\n      </div>\r\n      <style class=\"code\" contenteditable=\"true\">\r\n      .svg-border-animation {\r\n        position: absolute;\r\n        width: 320px;\r\n        height: 60px;\r\n        top: 50%;\r\n        left: 50%;\r\n        transform: translate(-50%, -50%);\r\n      }\r\n      .hover-text{\r\n        position:absolute;\r\n        line-height:60px;\r\n        width:320px;\r\n        top:0;\r\n        color:#333;\r\n        font-size:28px;\r\n        text-align:center;\r\n        cursor:pointer;\r\n      }\r\n      .shape{\r\n        fill: transparent;\r\n        stroke-width:4px;\r\n        stroke:#333;\r\n        stroke-dasharray: 160 520;\r\n        stroke-dashoffset: -460;\r\n      }\r\n      .svg-border-animation:hover .hover-text{\r\n        transition:0.5s;\r\n        color:#3F51B5;\r\n      }\r\n      .svg-border-animation:hover .shape{\r\n        -webkit-animation: draw 0.5s linear forwards;\r\n        animation: draw 0.5s linear forwards;\r\n      }\r\n\r\n      @keyframes draw {\r\n        0% {\r\n          stroke-dasharray: 160 520;\r\n          stroke-dashoffset: -460;\r\n          stroke-width: 4px;\r\n        }\r\n        100% {\r\n          stroke-dasharray: 760;\r\n          stroke-dashoffset: 0;\r\n          stroke-width: 2px;\r\n          stroke:#3F51B5;\r\n        }\r\n      }\r\n\r\n      </style>\r\n    </section>\r\n\r\n    <!-- 使用 SVG 绘制的线条动画 -->\r\n    <section id=\"line-animation\" class=\"code-wrap cf\">\r\n      <div class=\"css-live-wrap\">\r\n        <summary>使用 SVG stroke 虚线效果，绘制的线条动画</summary>\r\n        <summary>使用审查元素看看 html 结构，绘画内容在 svg 标签内</summary>\r\n        <hgroup class=\"line-animation\">\r\n          <svg class=\"l1\" width=\"200px\" height=\"200px\">\r\n            <path d=\"M100,0L200 100L100 200L0 100Z\"></path>\r\n          </svg>\r\n          <svg class=\"l2\" width=\"200PX\" height=\"200PX\">\r\n            <path d=\"M100,25L175,100L100,175L25,100Z\"></path>\r\n          </svg>\r\n          <svg class=\"l3\" width=\"200PX\" height=\"200PX\">\r\n            <path d=\"M100,50L150,100L100,150L50,100Z\"></path>\r\n          </svg>\r\n        </hgroup>\r\n      </div>\r\n      <style class=\"code\" contenteditable=\"true\">\r\n      .line-animation {\r\n        position: absolute;\r\n        width: 200px;\r\n        height: 200px;\r\n        top: 50%;\r\n        left: 50%;\r\n        transform: translate(-50%, -50%);\r\n      }\r\n      .line-animation svg {\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        transform-origin: center center;\r\n        transition: all 0.3s;\r\n        transform: rotateY(0deg);\r\n      }\r\n      .line-animation path {\r\n        fill: none;\r\n        stroke: #000;\r\n        stroke-width: 1;\r\n        fill: none;\r\n        transition: all .3s;\r\n      }\r\n      .line-animation .l1 path {\r\n        stroke-width: 3;\r\n        stroke: #666;\r\n        stroke-dasharray: 282.84;\r\n        stroke-dashoffset: -565.69;\r\n        animation: LOADING1 5s linear 0s infinite;\r\n      }\r\n      .line-animation .l2 path {\r\n        stroke-width: 2;\r\n        stroke: #333;\r\n        stroke-dasharray: 212;\r\n        stroke-dashoffset: -424;\r\n        animation: LOADING2 4s linear 0s infinite;\r\n      }\r\n      .line-animation .l3 path {\r\n        stroke-dasharray: 141;\r\n        stroke-dashoffset: -282;\r\n        animation: LOADING3 3s linear 0s infinite;\r\n      }\r\n      @keyframes LOADING1 {\r\n        0% {\r\n          stroke-dashoffset: -565.69;\r\n        }\r\n        50% {\r\n          stroke-dashoffset: 0;\r\n          stroke-width: 1;\r\n        }\r\n        100% {\r\n          stroke-dashoffset: 565.69;\r\n\r\n        }\r\n      }\r\n      @keyframes LOADING2 {\r\n        0% {\r\n          stroke-dashoffset: 424;\r\n        }\r\n        50% {\r\n          stroke-dashoffset: 0;\r\n          stroke-width: 1;\r\n        }\r\n        100% {\r\n          stroke-dashoffset: -424;\r\n        }\r\n      }\r\n      @keyframes LOADING3 {\r\n        0% {\r\n          stroke-dashoffset: -282;\r\n        }\r\n        50% {\r\n          stroke-dashoffset: 0;\r\n          stroke-width: 2;\r\n        }\r\n        100% {\r\n          stroke-dashoffset: 282;\r\n        }\r\n      }\r\n      .line-animation .l1 {\r\n        animation: TURN 4s linear 0s infinite;\r\n      }\r\n      .line-animation .l2 {\r\n        animation: TURNBACK 3s linear 0s infinite;\r\n      }\r\n      .line-animation .l3 {\r\n        animation: TURN 1.5s linear 0s infinite;\r\n      }\r\n      @keyframes TURN {\r\n        0% {\r\n          transform: rotateY(0deg);\r\n          opacity: 1;\r\n        }\r\n        25% {\r\n          transform: rotateY(90deg);\r\n          opacity: .6;\r\n        }\r\n        50% {\r\n          transform: rotateY(180deg);\r\n          opacity: 1;\r\n        }\r\n        75% {\r\n          transform: rotateY(270deg);\r\n          opacity: .6;\r\n        }\r\n        100% {\r\n          transform: rotateY(360deg);\r\n          opacity: 1;\r\n        }\r\n      }\r\n\r\n      @keyframes TURNBACK {\r\n        0% {\r\n          transform: rotateY(360deg);\r\n          opacity: 1;\r\n        }\r\n        25% {\r\n          transform: rotateY(270deg);\r\n          opacity: .6;\r\n        }\r\n        50% {\r\n          transform: rotateY(180deg);\r\n          opacity: 1;\r\n        }\r\n        75% {\r\n          transform: rotateY(90deg);\r\n          opacity: .6;\r\n        }\r\n        100% {\r\n          transform: rotateY(0deg);\r\n          opacity: 1;\r\n        }\r\n      }\r\n      </style>\r\n    </section>\r\n\r\n    <!-- 使用 SVG 绘制的线条动画 -->\r\n    <section id=\"line-animation2\" class=\"code-wrap cf\">\r\n      <div class=\"css-live-wrap\">\r\n        <summary>使用 SVG stroke 虚线效果，绘制的线条动画</summary>\r\n        <summary>绘画内容在 svg 标签内（刷新查看动画）</summary>\r\n        <hgroup class=\"line-animation2\">\r\n          <svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"200px\" height=\"200px\" >\r\n            <line x1=\"0\" y1=\"0\" x2=\"200\" y2=\"200\" class='la-line' />\r\n            <line x1=\"200\" y1=\"0\" x2=\"0\" y2=\"200\" class='la-line' />\r\n            <line x1=\"100\" y1=\"10\" x2=\"100\" y2=\"190\" class='la-line2' />\r\n            <line x1=\"10\" y1=\"100\" x2=\"190\" y2=\"100\" class='la-line2' />\r\n            <rect x=\"10\" y=\"10\" width=\"180\" height=\"180\" rx=\"20\" ry=\"20\" class=\"la-rect\"></rect>\r\n            <circle cx=\"100\" cy=\"100\" r=\"80\"  class=\"la-circle\"></circle>\r\n            <rect x=\"50\" y=\"50\" width=\"100\" height=\"100\" rx=\"20\" ry=\"20\" class=\"la-rect2\"></rect>\r\n            <circle cx=\"100\" cy=\"100\" r=\"40\"  class=\"la-circle2\"></circle>\r\n          </svg>\r\n        </hgroup>\r\n      </div>\r\n      <style class=\"code\" contenteditable=\"true\">\r\n        .line-animation2{\r\n          position: absolute;\r\n          width: 200px;\r\n          height: 200px;\r\n          top: 50%;\r\n          left: 50%;\r\n          transform: translate(-50%, -50%);\r\n        }\r\n        .la-line{\r\n          stroke-width:1px;\r\n          stroke:#000;\r\n          stroke-dasharray: 282;\r\n          stroke-dashoffset: 282;\r\n          animation: dash 0.5s ease-in forwards;\r\n        }\r\n\r\n        .la-line2{\r\n          stroke-width:1px;\r\n          stroke:#000;\r\n          stroke-dasharray: 282;\r\n          stroke-dashoffset: 282;\r\n          animation: dash 0.5s ease-out 0.5s forwards;\r\n        }\r\n\r\n        .la-rect{\r\n          fill:none;\r\n          stroke:#000;\r\n          stroke-dasharray: 720;\r\n          stroke-dashoffset: 720;\r\n          animation: dash 0.5s linear 1s forwards;\r\n        }\r\n\r\n        .la-circle{\r\n          fill:none;\r\n          stroke:#000;\r\n          stroke-dasharray: 720;\r\n          stroke-dashoffset: 720;\r\n          animation: dash 0.5s ease-in 1s forwards;\r\n        }\r\n\r\n        .la-rect2{\r\n          fill:none;\r\n          stroke:#000;\r\n          stroke-dasharray: 720;\r\n          stroke-dashoffset: -720;\r\n          animation: dash 1s ease-out 1s forwards;\r\n        }\r\n\r\n        .la-circle2{\r\n          fill:none;\r\n          stroke:#000;\r\n          stroke-dasharray: 720;\r\n          stroke-dashoffset: -720;\r\n          animation: dash 1s linear 1s forwards;\r\n        }\r\n\r\n        @keyframes dash {\r\n          to {\r\n            stroke-dashoffset: 0;\r\n          }\r\n        }\r\n      </style>\r\n    </section>\r\n\r\n\t\t<!-- 使用 SVG 绘制 loading 图 -->\r\n\t\t<section id=\"circle-load\" class=\"code-wrap cf\">\r\n\t\t\t<div class=\"css-live-wrap\">\r\n\t\t\t\t<summary>使用 SVG stroke 虚线效果，绘制 loading 图</summary>\r\n\t\t\t\t<summary>使用审查元素看看 html 结构，绘画内容在 svg 标签内</summary>\r\n\t\t\t  <summary>改变 SVG 元素的虚线效果生成补间动画</summary>\r\n      \t<hgroup class=\"circle-load\">\r\n\t\t\t\t\t<svg width=\"240px\" height=\"240px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n\t\t\t\t\t\t<circle cx=\"110\" cy=\"110\" r=\"90\" stroke-width=\"20\" stroke=\"gainsboro\" fill=\"none\"></circle>\r\n\t\t\t\t\t\t<circle cx=\"110\" cy=\"110\" r=\"90\" stroke-width=\"20\" stroke=\"darkturquoise\" fill=\"none\" class='circle-load-svg'></circle>\r\n\t\t\t\t\t</svg>\r\n\t\t\t\t</hgroup>\r\n\t\t\t</div>\r\n\t\t\t<style class=\"code\" contenteditable=\"true\">\r\n      .circle-load {\r\n      \tposition: absolute;\r\n      \twidth: 200px;\r\n      \theight: 200px;\r\n      \ttop: 50%;\r\n      \tleft: 50%;\r\n      \ttransform: translate(-50%, -50%);\r\n      }\r\n      .circle-load-svg {\r\n      \tstroke-dasharray: 0 570;\r\n      \tanimation:rot 8s linear infinite;\r\n      }\r\n\r\n      @keyframes rot{\r\n      \t100%{\r\n      \t  stroke-dasharray: 570 570;\r\n      \t}\r\n      }\r\n\t\t\t</style>\r\n\t\t</section>\r\n\r\n\t\t<!-- 使用 SVG PATH 绘制饼图 -->\r\n\t\t<section id=\"circle-load-a\" class=\"code-wrap cf\">\r\n\t\t\t<div class=\"css-live-wrap\">\r\n\t\t\t\t<summary>使用 SVG PATH 绘制饼图</summary>\r\n\t\t\t\t<summary>使用审查元素看看 html 结构，绘画内容在 svg 标签内</summary>\r\n\t\t\t\t<summary>点击饼图查看动画过渡效果！</summary>\r\n\t\t\t\t<hgroup class=\"circle-load-a\" id='pieCon' style=\"cursor:pointer\">\r\n\t\t\t\t\t<div id=\"pie-number\">75%</div>\r\n\t\t\t\t\t<svg width=\"200px\" height=\"200px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n\t\t\t\t\t\t<circle cx=\"100\" cy=\"100\" r=\"50\" fill=\"#E7E9ED\" ></circle>\r\n\t\t\t\t\t\t<path d=\"M100 100,L100 150,A50 50 0 1 1 150 100,Z\" fill=\"rgba(54, 162, 235, .8)\" id=\"pie\" stroke=\"#fff\"; stroke-width\"5\";/>\r\n\t\t\t\t\t</svg>\r\n\t\t\t\t</hgroup>\r\n\t\t\t</div>\r\n\t\t\t<style class=\"\" contenteditable=\"true\">\r\n\t\t\t.circle-load-a {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\twidth: 200px;\r\n\t\t\t\theight: 200px;\r\n\t\t\t\ttop: 50%;\r\n\t\t\t\tleft: 50%;\r\n\t\t\t\ttransform: translate(-50%, -50%)  scale(2);\r\n\t\t\t}\r\n\t\t\t#pie-number{\r\n\t\t\t\tfont-size:24px;\r\n\t\t\t\tcolor:#fff;\r\n\t\t\t\twidth:200px;\r\n\t\t\t\tposition:absolute;\r\n\t\t\t\ttop:0;\r\n\t\t\t\tleft:0;\r\n\t\t\t\tline-height:200px;\r\n\t\t\t\ttext-align:center;\r\n\t\t\t\ttext-shadow:0 0 2px #999;\r\n\t\t\t}\r\n\t\t\t</style>\r\n\t\t\t<script class=\"jscode\" contenteditable=\"true\">\r\n\r\n      var\r\n        randomDeg = 0,\r\n        // 动画时间\r\n        t = 2000,\r\n        // 每帧偏移量\r\n        eachDeg = 0,\r\n        // 初始值\r\n        startDeg = 0,\r\n        // 初始时间\r\n        startTime = null,\r\n        // 动画锁\r\n        isLock = 0,\r\n        // 饼图比例\r\n        numberElem = document.getElementById('pie-number');\r\n\r\n      // 逐帧动画\r\n      function pieMove() {\r\n        var pie = document.getElementById('pie'),\r\n          startAngle = 0,\r\n          cx = 100,\r\n          cy = 100,\r\n          r = 50,\r\n          isLarge = 0,\r\n          isOver180 = 0,\r\n          deg = startDeg,\r\n          x0 = cx + r * Math.cos(startAngle * Math.PI / 180),\r\n          y0 = cy - r * Math.sin(startAngle * Math.PI / 180),\r\n          x1 = cx + r * Math.cos(deg * Math.PI / 180),\r\n          y1 = cy - r * Math.sin(deg * Math.PI / 180);\r\n\r\n        // console.log('deg x0 y0 x1 y1 ',deg,x0,y0,x1,y1);\r\n\r\n        if (deg > 180) {\r\n          isOver180 = 1;\r\n          isLarge = 0;\r\n        }\r\n\r\n        pie.setAttribute(\"d\", \"M \" + cx + \",\" + cy + \" L \" + x0 + \",\" + y0 + \" A \" + r + \" \" + r + \" 0 \" + isOver180 + \" \" + isLarge + \" \" + x1 + \",\" + y1 + \" Z\");\r\n\r\n        numberElem.innerText = (parseInt(deg / 360 * 10000) / 100) + \"%\";\r\n\r\n        startDeg += eachDeg;\r\n\r\n        if (new Date() - startTime <= t) {\r\n          requestAnimationFrame(pieMove);\r\n        } else {\r\n          isLock = 0;\r\n        }\r\n      }\r\n\r\n      function initClick() {\r\n        // 动画运行期间无法点击\r\n        if (!isLock) {\r\n          // 动画锁\r\n          isLock = 1;\r\n          // 随机角度\r\n          randomDeg = Math.random() * 360,\r\n            // 动画时间\r\n            t = 2000,\r\n            // 每帧偏移量 = 2000 / ( 1000 / 60 ) = 120\r\n            eachDeg = randomDeg / 120,\r\n            // 初始值\r\n            startDeg = eachDeg,\r\n            // 初始时间\r\n            startTime = new Date();\r\n\r\n          requestAnimationFrame(pieMove);\r\n        }\r\n      }\r\n\r\n      // 点击监听\r\n      document.getElementById('pieCon').addEventListener('click', initClick);\r\n\r\n      initClick();\r\n\r\n\t\t\t</script>\r\n\t\t</section>\r\n\r\n\t\t<!-- 使用 SVG 绘制百分比图 -->\r\n\t\t<section id=\"percentage-pie\" class=\"code-wrap cf\">\r\n\t\t\t<div class=\"css-live-wrap\">\r\n\t\t\t\t<summary>使用 SVG 绘制百分比图</summary>\r\n\t\t\t\t<summary>使用审查元素看看 html 结构，绘画内容在 svg 标签内</summary>\r\n\t\t\t\t<summary>使用了 SVG 动画 animate</summary>\r\n\t\t\t\t<hgroup class=\"percentage-pie\">\r\n\t\t\t\t\t<svg width=\"200px\" height=\"200px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n\t\t\t\t\t\t<text class=\"liquidFillGaugeText\" text-anchor=\"middle\" font-size=\"42px\" transform=\"translate(100,120)\" style=\"fill: #000\">50.0%</text>\r\n\t\t\t\t\t\t<!-- Wave -->\r\n\t\t\t\t\t\t<g id=\"wave\">\r\n\t\t\t\t\t\t\t<path id=\"wave-2\"\r\n\t\t\t\t\t\t\t\t\t\tfill=\"rgba(255, 20, 147, .5)\"\r\n\t\t\t\t\t\t\t\t\t\td=\"M0 100 C90 28, 92 179, 200 100 A95 95 0 0 1 0 100 Z\" >\r\n\t\t\t\t\t\t\t<animate dur=\"5s\"\r\n\t\t\t\t\t\t\t\t\t\trepeatCount=\"indefinite\"\r\n\t\t\t\t\t\t\t\t\t\tattributeName=\"d\"\r\n\t\t\t\t\t\t\t\t\t\tattributeType=\"XML\"\r\n\t\t\t\t\t\t\t\t\t\tvalues=\"M0 100 C90 28, 92 179, 200 100 A95 95 0 0 1 0 100 Z;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tM0 100 C145 100, 41 100, 200 100 A95 95 0 0 1 0 100 Z;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tM0 100 C90 28, 92 179, 200 100 A95 95 0 0 1 0 100 Z\" />\r\n\t\t\t\t\t\t\t</path>\r\n\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t<circle cx=\"100\" cy=\"100\" r=\"80\" stroke-width=\"10\" stroke=\"white\" fill=\"transparent\"></circle>\r\n\t\t\t\t\t\t<circle cx=\"100\" cy=\"100\" r=\"90\" stroke-width=\"20\" stroke=\"deeppink\" fill=\"none\" class='percentage-pie-svg'></circle>\r\n\t\t\t\t\t</svg>\r\n\t\t\t\t</hgroup>\r\n\t\t\t</div>\r\n\t\t\t<style class=\"code\" contenteditable=\"true\">\r\n      .percentage-pie {\r\n      \tposition: absolute;\r\n      \twidth: 200px;\r\n      \theight: 200px;\r\n      \ttop: 50%;\r\n      \tleft: 50%;\r\n      \ttransform: translate(-50%, -50%);\r\n      }\r\n\t\t\t</style>\r\n\t\t</section>\r\n\r\n\t\t<!-- 使用 SVG 绘制百分比图 -->\r\n\t\t<section id=\"percentage-pie2\" class=\"code-wrap cf\">\r\n\t\t\t<div class=\"css-live-wrap\">\r\n\t\t\t\t<summary>使用 SVG 绘制可调节数值百分比图</summary>\r\n\t\t\t\t<summary>使用审查元素看看 html 结构，绘画内容在 svg 标签内</summary>\r\n\t\t\t\t<summary>使用原生JS控制svg百分比，并生成动画，刷新页面观看动画</summary>\r\n\t\t\t\t<hgroup class=\"percentage-pie2\">\r\n\t\t\t\t\t<svg width=\"200px\" height=\"200px\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n\t\t\t\t\t\t<text id=\"liquidFillGaugeText\" text-anchor=\"middle\" font-size=\"42px\" transform=\"translate(100,120)\" style=\"fill: #000\">50.0%</text>\r\n\t\t\t\t\t\t<!-- Wave -->\r\n\t\t\t\t\t\t<path id=\"waveMove\"\r\n\t\t\t\t\t\t\t\t\tfill=\"rgba(170, 125, 57, .8)\"\r\n\t\t\t\t\t\t\t\t\td=\"M5 100 C90 28, 92 179, 195 100 A95 95 0 0 1 5 100 Z\" transform=\"translate(0,0)\">\r\n\t\t\t\t\t\t\t\t\t<!-- d=\"M5 100 C90 28, 92 179, 195 100 A95 95 0 0 1 5 100 Z\" > -->\r\n\t\t\t\t\t\t</path>\r\n\t\t\t\t\t\t<circle cx=\"100\" cy=\"100\" r=\"90\" stroke-width=\"20\" stroke=\"white\" fill=\"transparent\"></circle>\r\n\t\t\t\t\t\t<circle cx=\"100\" cy=\"100\" r=\"90\" stroke-width=\"10\" stroke=\"rgb(212, 171, 106)\" fill=\"none\" class='percentage-pie2-svg'></circle>\r\n\t\t\t\t\t</svg>\r\n\t\t\t\t</hgroup>\r\n\t\t\t</div>\r\n\t\t\t<style class=\"code\" contenteditable=\"true\" style=\"display:none\">\r\n\t\t\t.percentage-pie2 {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\twidth: 200px;\r\n\t\t\t\theight: 200px;\r\n\t\t\t\ttop: 50%;\r\n\t\t\t\tleft: 50%;\r\n\t\t\t\ttransform: translate(-50%, -50%);\r\n\t\t\t}\r\n\t\t\t</style>\r\n\t\t\t<script class=\"jscode\" contenteditable=\"true\">\r\n      var\r\n      // 圆半径\r\n      \tr = 90,\r\n      \t// 圆心 x\r\n      \tcx = 100,\r\n      \t// 圆心 y\r\n      \tcy = 100;\r\n\r\n      /**\r\n       * 圆的标准方程\r\n       * (x－a)²+(y－b)²=r²\r\n       * 已经 r 、y 求 x\r\n       * x1 = Math.sqrt(r^2 - (y - cy)^2) + 95\r\n       * x2 = Math.sqrt(r^2 - (y - cy)^2) - 95\r\n       * @return {[type]} [description]\r\n       */\r\n\r\n      var randomY = ~~(Math.random() * 19000) / 100,\r\n      \t// 初始Y值\r\n      \tstartY = 100,\r\n      \t// 与原距离差值\r\n      \toffsetY = startY - randomY,\r\n      \t// 运动时间\r\n      \tduration = 3000,\r\n      \t// 当前时间\r\n      \tstartTime = new Date(),\r\n      \t// svg elem\r\n      \tsvgElem = document.getElementById('waveMove'),\r\n      \t// 百分比\r\n      \tsvgText = document.getElementById('liquidFillGaugeText'),\r\n      \t// 是否大于180度\r\n      \tisOver180 = offsetY < 0 ? 1 : 0;\r\n\r\n      // console.log(svgElem);\r\n      // console.log('randomY', randomY);\r\n      // console.log('offsetY', offsetY);\r\n      requestAnimationFrame(function waveAni() {\r\n      \t// 当前时间线\r\n      \tvar t = Math.min(1, (Date.now() - startTime) / duration);\r\n\r\n      \trandomY = startY + (t * offsetY);\r\n\r\n      \tvar\r\n      \t// 圆弧起始点 x 坐标\r\n      \t\tx1 = Math.sqrt(r * r - (randomY - cy) * (randomY - cy)) + r,\r\n      \t\t// 圆弧终点 x 坐标\r\n      \t\tx2 = r - Math.sqrt(r * r - (randomY - cy) * (randomY - cy)),\r\n      \t\t// 设定三次贝塞尔曲线参数\r\n      \t\txGap = (x1 - x2) / 3,\r\n      \t\t// 波浪幅度\r\n      \t\tyGap = 30;\r\n\r\n      \t// console.log('t',t);\r\n      \t// console.log('randomY',randomY);\r\n      \t// console.log('x1 x2',x1,x2);\r\n      \t// console.log('xGap',xGap);\r\n      \t// console.log('yGap',yGap);\r\n\r\n      \t// 动画移动路径\r\n      \t// console.log('M',x2,randomY,'C',x2+xGap,randomY-yGap,',',x2+xGap+xGap,randomY+yGap,',',x1,randomY,'A',r,r,'0 0 1',x2,randomY,'Z');\r\n      \tvar path = 'M ' + x2 + ' ' + randomY + ' C ' + (x2 + xGap) + ' ' + (randomY - yGap) + ' , ' + (x2 + xGap + xGap) + ' ' + (randomY + yGap) + ' , ' + x1 + ' ' + randomY + ' A ' + r + ' ' + r + ' ' + '0 ' + isOver180 + ' 1' + ' ' + x2 + ' ' + randomY + ' Z';\r\n\r\n      \t// 使用 setAttribute 动态添加移动路径\r\n      \tsvgElem.setAttribute('d', path);\r\n      \t// 修改百分比值\r\n      \tsvgText.firstChild.nodeValue = ~~((190 - randomY) / 190 * 10000) / 100 + \"%\";\r\n      \tif (t < 1.0) requestAnimationFrame(waveAni);\r\n      });\r\n\t\t\t</script>\r\n\t\t</section>\r\n\r\n\t\t<!-- 使用 SVG 绘制莲花图 -->\r\n\t\t<section id=\"lotus\" class=\"code-wrap cf\">\r\n\t\t\t<div class=\"css-live-wrap\">\r\n\t\t\t\t<summary>使用 SVG 绘制莲花图</summary>\r\n\t\t\t\t<summary>使用审查元素看看 html 结构，绘画内容在 svg 标签内</summary>\r\n\t\t\t\t<hgroup class=\"lotus\">\r\n\t\t\t\t\t<svg  viewBox=\"0 0 200 200\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n\t\t\t\t\t\t<defs>\r\n\t\t\t\t\t\t  <path d=\"M100 10Q150 50,100 100Q50 50,100 10Z\" id=\"petal\"/>\r\n            </defs>\r\n            <g class=\"svg-lotus\">\r\n              <animateTransform dur=\"10s\" attributeName=\"transform\" repeatCount=\"indefinite\" type=\"rotate\" from=\"0,100,100\" to=\"360,100,100\"/>\r\n            </g>\r\n\t\t\t\t\t</svg>\r\n\t\t\t\t</hgroup>\r\n\t\t\t</div>\r\n\t\t\t<style class=\"code\" contenteditable=\"true\" style=\"display:none\">\r\n\t\t\t.lotus {\r\n\t\t\t\tposition: absolute;\r\n\t\t\t\twidth: 200px;\r\n\t\t\t\theight: 200px;\r\n\t\t\t\ttop: 50%;\r\n\t\t\t\tleft: 50%;\r\n\t\t\t\ttransform: translate(-50%, -50%);\r\n\t\t\t}\r\n\t\t\t</style>\r\n\t\t\t<script class=\"jscode\" contenteditable=\"true\">\r\n      (function() {\r\n      \tfor (var i = 0; i < 360; i += 22.5) {\r\n          // 创建 <use> 标签\r\n      \t  var useElement = document.createElementNS('http://www.w3.org/2000/svg', 'use');\r\n\r\n          // 创建命名空间\r\n      \t  useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#petal');\r\n      \t  useElement.setAttribute('fill', 'hsla(' + i + ', 62%, 80%, .35)');\r\n      \t  useElement.setAttribute('transform', 'rotate(' + i + ' 100 100)');\r\n\r\n          // 插入 <use>\r\n      \t  document.querySelector('.svg-lotus').appendChild(useElement);\r\n      \t}\r\n      })();\r\n\t\t\t</script>\r\n\t\t</section>\r\n\r\n    <!-- 使用 SVG 绘制风车 -->\r\n    <section id=\"windmill\" class=\"code-wrap cf\">\r\n      <div class=\"css-live-wrap\">\r\n        <summary>使用 SVG 绘制风车</summary>\r\n        <summary>使用审查元素看看 html 结构，绘画内容在 svg 标签内</summary>\r\n        <hgroup class=\"windmill\">\r\n          <svg  viewBox=\"0 0 200 200\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n            <defs>\r\n              <path d=\"M100 10Q150 50,100 100Z\" id=\"windm\"/>\r\n            </defs>\r\n            <g class=\"svg-windmill\">\r\n              <animateTransform dur=\"10s\" attributeName=\"transform\" repeatCount=\"indefinite\" type=\"rotate\" from=\"0,100,100\" to=\"360,100,100\"/>\r\n            </g>\r\n          </svg>\r\n        </hgroup>\r\n      </div>\r\n      <style class=\"code\" contenteditable=\"true\" style=\"display:none\">\r\n      .windmill {\r\n        position: absolute;\r\n        width: 200px;\r\n        height: 200px;\r\n        top: 50%;\r\n        left: 50%;\r\n        transform: translate(-50%, -50%);\r\n      }\r\n      </style>\r\n      <script class=\"jscode\" contenteditable=\"true\">\r\n      (function() {\r\n        for (var i = 0; i < 360; i += 30) {\r\n          // 创建 <use> 标签\r\n          var useElement = document.createElementNS('http://www.w3.org/2000/svg', 'use');\r\n\r\n          // 创建命名空间\r\n          useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#windm');\r\n          useElement.setAttribute('fill', 'hsla(200, 30%, 60%, .5)');\r\n          useElement.setAttribute('transform', 'rotate(' + i + ' 100 100)');\r\n\r\n          // 插入 <use>\r\n          document.querySelector('.svg-windmill').appendChild(useElement);\r\n        }\r\n      })();\r\n      </script>\r\n    </section>\r\n\r\n    <!-- 使用 SVG 绘制 360 极速浏览器图标 -->\r\n    <section id=\"sixSpeed\" class=\"code-wrap cf\">\r\n      <div class=\"css-live-wrap\">\r\n        <summary>使用 SVG 绘制 360 极速浏览器图标</summary>\r\n        <summary>使用审查元素看看 html 结构，绘画内容在 svg 标签内</summary>\r\n        <hgroup class=\"sixSpeed\">\r\n          <svg class=\"svg-sixSpeed\" viewBox=\"0 0 200 200\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n            <defs>\r\n              <path d=\"M120 10Q78 39,100 100C15 88, 19 3, 120 10Z\" id=\"speed\"/>\r\n              <circle cx=\"95\" cy=\"95\" r=\"10\"  fill=\"white\" id='icon-center'></circle>\r\n            </defs>d\r\n          </svg>\r\n        </hgroup>\r\n      </div>\r\n      <style class=\"code\" contenteditable=\"true\" style=\"display:none\">\r\n      .sixSpeed {\r\n        position: absolute;\r\n        width: 200px;\r\n        height: 200px;\r\n        top: 50%;\r\n        left: 50%;\r\n        transform: translate(-50%, -50%);\r\n      }\r\n      </style>\r\n      <script class=\"jscode\" contenteditable=\"true\">\r\n      (function() {\r\n        var color = ['#C538F5','#F44018','#F7EA09','#2BD067','#4192F4'],\r\n          j = 0;\r\n\r\n        for (var i = 40; i < 400; i += 72) {\r\n          // 创建 <use> 标签\r\n          var useElement = document.createElementNS('http://www.w3.org/2000/svg', 'use'),\r\n            centerElement = document.createElementNS('http://www.w3.org/2000/svg', 'use');\r\n\r\n          // 创建命名空间\r\n          useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#speed');\r\n          useElement.setAttribute('fill', color[j++]);\r\n          useElement.setAttribute('transform', 'rotate(' + i + ' 95 95)');\r\n\r\n          centerElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#icon-center');\r\n\r\n          // 插入 <use>\r\n          document.querySelector('.svg-sixSpeed').appendChild(useElement);\r\n          document.querySelector('.svg-sixSpeed').appendChild(centerElement);\r\n        }\r\n      })();\r\n      </script>\r\n    </section>\r\n\t</div>\r\n\r\n\t<div id=\"tips\">\r\n\t\t因部分图案使用 clip-path，兼容性不佳，建议使用高版本 Chrome 内核浏览器观看。\r\n\t</div>\r\n\t<script type=\"text/javascript\">\r\n\t\tvar cnzz_protocol = ((\"https: \" == document.location.protocol) ? \" https://\":\" http://\");\r\n\t\tdocument.write(unescape(\"%3Cspan id='cnzz_stat_icon_1259441963'%3E%3C/span%3E%3Cscript src='\" + cnzz_protocol + \"s4.cnzz.com/z_stat.php%3Fid%3D1259441963'type='text/javascript'%3E%3C/script%3E\"));\r\n\t\t// 低版本IE弹出层关闭\r\n\t\tvar\r\n\t\t\telem = document.getElementById('tips'),\r\n\t\t\tngua = navigator.userAgent,\r\n\t\t\treg = /webkit|chrome|safari/gi,\r\n\t\t\tisW = reg.test(ngua);\r\n\r\n\t\tif(!isW){\r\n\t\t\telem.style.display=\"block\";\r\n\r\n\t\t\telem.addEventListener('click',function(){\r\n\t\t\t\tthis.style.display=\"none\";\r\n\t\t\t});\r\n\t\t}\r\n\t</script>\r\n\r\n</body>\r\n</html>\r\n"
  },
  {
    "path": "static/css/index.css",
    "content": ".container{\r\n  width: 100%;\r\n  position: relative;\r\n  z-index:100;\r\n}\r\n#tips{\r\n  display:none;\r\n  width:470px;\r\n  height:60px;\r\n  position:fixed;\r\n  top:0;\r\n  left:0;\r\n  bottom:0;\r\n  right:0;\r\n  margin:auto;\r\n  padding:50px;\r\n  font-size:24px;\r\n  background-color:#fff;\r\n  color:#333;\r\n  border:5px solid deeppink;\r\n  z-index:9999;\r\n  cursor:pointer;\r\n  box-shadow:0 0 0 1000px rgba(0,0,0,.5);\r\n  text-align:center;\r\n}\r\n.code-wrap{\r\n  width: 100%;\r\n  border-top: 1px solid #e6e6e6;\r\n  border-bottom: 1px solid #e6e6e6;\r\n  height:400px;\r\n  margin-bottom:10px;\r\n  position:relative;\r\n}\r\n.css-live-wrap{\r\n  position:relative;\r\n  width:50%;\r\n  height:100%;\r\n  float:left;\r\n}\r\n\r\n.code,.jscode{\r\n  width: 50%;\r\n  height:100%;\r\n  box-sizing: border-box;\r\n  font-size:14px;\r\n  background: #ffe;\r\n  display: block;\r\n  float: right;\r\n  padding: 1em;\r\n  font-family: Consolas, Monaco, monospace;\r\n  white-space: pre;\r\n  color:#333;\r\n  /* text-shadow: 0 1px 1px white; */\r\n  overflow-y:scroll;\r\n}\r\nsummary{\r\n  position:absolute;\r\n  cursor:default;\r\n  left:0;\r\n  color: #999;\r\n  font-size: 14px;\r\n  line-height:18px;\r\n  margin: 20px 0 0 20px;\r\n  border-left: 2px solid #FF9800;\r\n  padding: 0 10px;\r\n  text-shadow: 0 0.2px hsl(0,0%,85%);\r\n  /* background: linear-gradient(#FF9800, #FF9800) no-repeat; */\r\n  background-size: 100% 1px;\r\n  background-position: -400px bottom;\r\n  transition:.5s;\r\n}\r\n\r\nsummary:nth-child(2){\r\n  margin-top:60px;\r\n}\r\n\r\nsummary:nth-child(3){\r\n  margin-top:100px;\r\n}\r\n\r\n"
  },
  {
    "path": "static/css/reset.css",
    "content": "@charset \"utf-8\";\r\n\r\n/*CSS reset*/\r\nhtml {\r\n\toverflow-x: hidden;\r\n\toverflow-y: auto;\r\n\tcolor: #333;\r\n\tfont-size: 62.5%;\r\n\tfont-family: Microsoft Yahei,simsun,Tahoma,Helvetica,Arial,SimHei,sans-serif;\r\n}\r\nbody, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquote {\r\n\tmargin: 0;\r\n\tpadding: 0\r\n}\r\nfieldset, img {\r\n\tborder: 0\r\n}\r\naddress, caption, cite, code, dfn, em, th, var, optgroup {\r\n\tfont-style: normal;\r\n\tfont-weight: 400\r\n}\r\ndel, ins {\r\n\ttext-decoration: none\r\n}\r\nli {\r\n\tlist-style: none\r\n}\r\ncaption, th {\r\n\ttext-align: left\r\n}\r\nq:before, q:after {\r\n\tcontent: ''\r\n}\r\nabbr, acronym {\r\n\tborder: 0;\r\n\tfont-variant: normal\r\n}\r\nsup {\r\n\tvertical-align: baseline\r\n}\r\nsub {\r\n\tvertical-align: baseline\r\n}\r\nlegend {\r\n\tcolor: #000\r\n}\r\ninput, button, textarea, select, optgroup, option {\r\n\tfont-family: inherit;\r\n\tfont-size: inherit;\r\n\tfont-style: inherit;\r\n\tfont-weight: inherit\r\n}\r\ninput, button, textarea, select {\r\n\toutline:none;\r\n\t*font-size: 100%\r\n}\r\ntextarea{resize:none}\r\n\r\na {\r\n\toutline: 0;\r\n\ttext-decoration: none;\r\n}\r\na:hover {\r\n\toutline: 0;\r\n\ttext-decoration: none;\r\n}\r\n.clearfix, .cf {\r\n\tzoom: 1\r\n}\r\n.clearfix:after, .cf:after {\r\n\tcontent: \"\";\r\n\tdisplay: block;\r\n\theight: 0;\r\n\tclear: both;\r\n\tvisibility: hidden\r\n}\r\n* {\r\n\t-webkit-tap-highlight-color: transparent;\r\n\t-webkit-appearance: none;\r\n\toutline:none;\r\n}\r\n"
  },
  {
    "path": "static/js/index.js",
    "content": "(function() {\r\n\tfor (var i = 0; i < 360; i += 22.5) {\r\n\t\tvar useElement = document.createElementNS('http://www.w3.org/2000/svg', 'use');\r\n\r\n\t\tuseElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#petal');\r\n\t\tuseElement.setAttribute('fill', 'hsla(' + i + ', 62%, 80%, .35)');\r\n\t\tuseElement.setAttribute('transform', 'rotate(' + i + ' 50 50)');\r\n\r\n\t\tdocument.querySelector('.svg-lotus').appendChild(useElement);\r\n\t}\r\n})();\r\n"
  }
]