123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784 |
- <!DOCTYPE html>
- <html lang="zh-CN">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width,initial-scale=1">
- <title>我做了一个手写春联小网页,祝大家虎年暴富 | 彪哥博客</title>
- <meta name="generator" content="VuePress 1.9.5">
- <link rel="icon" href="/blog/img/favicon.ico">
- <meta name="description" content="web前端技术博客,专注web前端学习与总结。JavaScript,js,ES6,TypeScript,vue,React,python,css3,html5,Node,git,github等技术文章。">
- <meta name="keywords" content="前端博客,个人技术博客,前端,前端开发,前端框架,web前端,前端面试题,技术文档,学习,面试,JavaScript,js,ES6,TypeScript,vue,python,css3,html5,Node,git,github,markdown">
- <meta name="theme-color" content="#11a8cd">
-
- <link rel="preload" href="/blog/assets/css/0.styles.dc03b589.css" as="style"><link rel="preload" href="/blog/assets/js/app.5c136166.js" as="script"><link rel="preload" href="/blog/assets/js/2.c241a1b0.js" as="script"><link rel="preload" href="/blog/assets/js/3.6748bd5c.js" as="script"><link rel="preload" href="/blog/assets/js/85.24532d6a.js" as="script"><link rel="prefetch" href="/blog/assets/js/10.cad3aa70.js"><link rel="prefetch" href="/blog/assets/js/100.1522ae22.js"><link rel="prefetch" href="/blog/assets/js/101.5c520ce5.js"><link rel="prefetch" href="/blog/assets/js/102.a0c8ea6b.js"><link rel="prefetch" href="/blog/assets/js/103.0e49cbad.js"><link rel="prefetch" href="/blog/assets/js/104.91a6aec1.js"><link rel="prefetch" href="/blog/assets/js/105.c39c4cd9.js"><link rel="prefetch" href="/blog/assets/js/106.88849931.js"><link rel="prefetch" href="/blog/assets/js/107.bf754f60.js"><link rel="prefetch" href="/blog/assets/js/108.a43622c2.js"><link rel="prefetch" href="/blog/assets/js/109.3219d87b.js"><link rel="prefetch" href="/blog/assets/js/11.f2e9eca8.js"><link rel="prefetch" href="/blog/assets/js/110.f41596b0.js"><link rel="prefetch" href="/blog/assets/js/111.da99a105.js"><link rel="prefetch" href="/blog/assets/js/112.9dd75c6f.js"><link rel="prefetch" href="/blog/assets/js/113.9322f157.js"><link rel="prefetch" href="/blog/assets/js/114.c5150cc6.js"><link rel="prefetch" href="/blog/assets/js/115.f58b49f8.js"><link rel="prefetch" href="/blog/assets/js/116.8f7d9c6f.js"><link rel="prefetch" href="/blog/assets/js/117.3c970f48.js"><link rel="prefetch" href="/blog/assets/js/118.921e1d54.js"><link rel="prefetch" href="/blog/assets/js/119.0141defb.js"><link rel="prefetch" href="/blog/assets/js/12.98512c60.js"><link rel="prefetch" href="/blog/assets/js/120.de47a761.js"><link rel="prefetch" href="/blog/assets/js/121.a0b3693a.js"><link rel="prefetch" href="/blog/assets/js/122.bbf33aff.js"><link rel="prefetch" href="/blog/assets/js/123.a358822d.js"><link rel="prefetch" href="/blog/assets/js/124.d380c979.js"><link rel="prefetch" href="/blog/assets/js/125.554c9fbf.js"><link rel="prefetch" href="/blog/assets/js/126.8c97b2f1.js"><link rel="prefetch" href="/blog/assets/js/127.805f10a4.js"><link rel="prefetch" href="/blog/assets/js/128.1df741e8.js"><link rel="prefetch" href="/blog/assets/js/129.9bd0b43e.js"><link rel="prefetch" href="/blog/assets/js/13.a79fa0c7.js"><link rel="prefetch" href="/blog/assets/js/130.8840afa7.js"><link rel="prefetch" href="/blog/assets/js/131.4ee6bdf0.js"><link rel="prefetch" href="/blog/assets/js/132.20948a31.js"><link rel="prefetch" href="/blog/assets/js/133.bb2ca85d.js"><link rel="prefetch" href="/blog/assets/js/134.f680bddd.js"><link rel="prefetch" href="/blog/assets/js/135.751d7eef.js"><link rel="prefetch" href="/blog/assets/js/136.8024998e.js"><link rel="prefetch" href="/blog/assets/js/137.57ba6d3f.js"><link rel="prefetch" href="/blog/assets/js/138.ce358840.js"><link rel="prefetch" href="/blog/assets/js/139.11250a0f.js"><link rel="prefetch" href="/blog/assets/js/14.0fdf0c78.js"><link rel="prefetch" href="/blog/assets/js/140.df0763ba.js"><link rel="prefetch" href="/blog/assets/js/141.8726d4cf.js"><link rel="prefetch" href="/blog/assets/js/142.04650ef4.js"><link rel="prefetch" href="/blog/assets/js/143.41584e7c.js"><link rel="prefetch" href="/blog/assets/js/144.fe4a1a9a.js"><link rel="prefetch" href="/blog/assets/js/145.830a0f6b.js"><link rel="prefetch" href="/blog/assets/js/146.ec81c8aa.js"><link rel="prefetch" href="/blog/assets/js/147.01fd419b.js"><link rel="prefetch" href="/blog/assets/js/148.e05cdfb5.js"><link rel="prefetch" href="/blog/assets/js/149.760a79ed.js"><link rel="prefetch" href="/blog/assets/js/15.fce722b2.js"><link rel="prefetch" href="/blog/assets/js/150.3a1675b7.js"><link rel="prefetch" href="/blog/assets/js/151.0d73a46e.js"><link rel="prefetch" href="/blog/assets/js/152.c9c054d4.js"><link rel="prefetch" href="/blog/assets/js/153.b007c8a2.js"><link rel="prefetch" href="/blog/assets/js/154.8ab912b6.js"><link rel="prefetch" href="/blog/assets/js/155.b75e437a.js"><link rel="prefetch" href="/blog/assets/js/156.2ba750fc.js"><link rel="prefetch" href="/blog/assets/js/157.50fba2ce.js"><link rel="prefetch" href="/blog/assets/js/158.e16fda40.js"><link rel="prefetch" href="/blog/assets/js/159.7fc7fd44.js"><link rel="prefetch" href="/blog/assets/js/16.7cf1b239.js"><link rel="prefetch" href="/blog/assets/js/160.dc486df0.js"><link rel="prefetch" href="/blog/assets/js/161.97acae68.js"><link rel="prefetch" href="/blog/assets/js/162.86431056.js"><link rel="prefetch" href="/blog/assets/js/163.ef0cbf93.js"><link rel="prefetch" href="/blog/assets/js/164.6939da7f.js"><link rel="prefetch" href="/blog/assets/js/165.0eb7e303.js"><link rel="prefetch" href="/blog/assets/js/166.b74fcc64.js"><link rel="prefetch" href="/blog/assets/js/167.ed3d75b7.js"><link rel="prefetch" href="/blog/assets/js/168.ffbacb83.js"><link rel="prefetch" href="/blog/assets/js/169.ec57192c.js"><link rel="prefetch" href="/blog/assets/js/17.93f492a1.js"><link rel="prefetch" href="/blog/assets/js/170.2eff8ccf.js"><link rel="prefetch" href="/blog/assets/js/171.32f86847.js"><link rel="prefetch" href="/blog/assets/js/172.44d1d022.js"><link rel="prefetch" href="/blog/assets/js/173.44325ba2.js"><link rel="prefetch" href="/blog/assets/js/174.4d70268e.js"><link rel="prefetch" href="/blog/assets/js/175.aa74a4bf.js"><link rel="prefetch" href="/blog/assets/js/176.010c2b42.js"><link rel="prefetch" href="/blog/assets/js/177.e006c7d1.js"><link rel="prefetch" href="/blog/assets/js/178.8b7976a5.js"><link rel="prefetch" href="/blog/assets/js/179.77bb52e9.js"><link rel="prefetch" href="/blog/assets/js/18.f17de23a.js"><link rel="prefetch" href="/blog/assets/js/180.459407d6.js"><link rel="prefetch" href="/blog/assets/js/181.93e8dea2.js"><link rel="prefetch" href="/blog/assets/js/182.e83e4a62.js"><link rel="prefetch" href="/blog/assets/js/183.472c384f.js"><link rel="prefetch" href="/blog/assets/js/184.a8e1b0a3.js"><link rel="prefetch" href="/blog/assets/js/185.ebeeb484.js"><link rel="prefetch" href="/blog/assets/js/186.30e344be.js"><link rel="prefetch" href="/blog/assets/js/187.7c7f8c1b.js"><link rel="prefetch" href="/blog/assets/js/188.3a8bdaf2.js"><link rel="prefetch" href="/blog/assets/js/189.8fe8cc9b.js"><link rel="prefetch" href="/blog/assets/js/19.6b963460.js"><link rel="prefetch" href="/blog/assets/js/190.120bd8c0.js"><link rel="prefetch" href="/blog/assets/js/191.4c3c270b.js"><link rel="prefetch" href="/blog/assets/js/192.bcd4e550.js"><link rel="prefetch" href="/blog/assets/js/193.0fe0d5e0.js"><link rel="prefetch" href="/blog/assets/js/194.4513955e.js"><link rel="prefetch" href="/blog/assets/js/195.92b8c6d0.js"><link rel="prefetch" href="/blog/assets/js/196.08715780.js"><link rel="prefetch" href="/blog/assets/js/197.c69fa6d4.js"><link rel="prefetch" href="/blog/assets/js/198.872388aa.js"><link rel="prefetch" href="/blog/assets/js/199.bb8f5e4f.js"><link rel="prefetch" href="/blog/assets/js/20.839dae41.js"><link rel="prefetch" href="/blog/assets/js/200.1fed86d2.js"><link rel="prefetch" href="/blog/assets/js/201.5ba078d9.js"><link rel="prefetch" href="/blog/assets/js/202.b49b23f4.js"><link rel="prefetch" href="/blog/assets/js/203.d88a03d9.js"><link rel="prefetch" href="/blog/assets/js/204.fb928277.js"><link rel="prefetch" href="/blog/assets/js/205.432c3d8d.js"><link rel="prefetch" href="/blog/assets/js/206.4374de87.js"><link rel="prefetch" href="/blog/assets/js/207.02a926dc.js"><link rel="prefetch" href="/blog/assets/js/208.40276146.js"><link rel="prefetch" href="/blog/assets/js/209.09ea3d1f.js"><link rel="prefetch" href="/blog/assets/js/21.bd21bd29.js"><link rel="prefetch" href="/blog/assets/js/210.65b5c252.js"><link rel="prefetch" href="/blog/assets/js/211.de944cbe.js"><link rel="prefetch" href="/blog/assets/js/212.8a476248.js"><link rel="prefetch" href="/blog/assets/js/213.503671a6.js"><link rel="prefetch" href="/blog/assets/js/214.2be447ed.js"><link rel="prefetch" href="/blog/assets/js/215.94598eb8.js"><link rel="prefetch" href="/blog/assets/js/216.a72becb1.js"><link rel="prefetch" href="/blog/assets/js/217.a3b7d409.js"><link rel="prefetch" href="/blog/assets/js/218.a6b835cb.js"><link rel="prefetch" href="/blog/assets/js/219.b99343b6.js"><link rel="prefetch" href="/blog/assets/js/22.e6bcf65d.js"><link rel="prefetch" href="/blog/assets/js/220.8065033b.js"><link rel="prefetch" href="/blog/assets/js/221.f9eb596c.js"><link rel="prefetch" href="/blog/assets/js/222.1fb8fe25.js"><link rel="prefetch" href="/blog/assets/js/223.d5ff1bff.js"><link rel="prefetch" href="/blog/assets/js/224.364b4b11.js"><link rel="prefetch" href="/blog/assets/js/225.bd8b00c7.js"><link rel="prefetch" href="/blog/assets/js/226.78192713.js"><link rel="prefetch" href="/blog/assets/js/227.06ec006e.js"><link rel="prefetch" href="/blog/assets/js/228.166546a8.js"><link rel="prefetch" href="/blog/assets/js/229.51820867.js"><link rel="prefetch" href="/blog/assets/js/23.7bb82fc7.js"><link rel="prefetch" href="/blog/assets/js/230.3f45e487.js"><link rel="prefetch" href="/blog/assets/js/231.c6faedb6.js"><link rel="prefetch" href="/blog/assets/js/232.f938a3a8.js"><link rel="prefetch" href="/blog/assets/js/233.0dc59324.js"><link rel="prefetch" href="/blog/assets/js/234.bb73adca.js"><link rel="prefetch" href="/blog/assets/js/235.97ed69db.js"><link rel="prefetch" href="/blog/assets/js/236.a8c51930.js"><link rel="prefetch" href="/blog/assets/js/237.6ae31c88.js"><link rel="prefetch" href="/blog/assets/js/238.2f5c56ae.js"><link rel="prefetch" href="/blog/assets/js/239.506a4e9f.js"><link rel="prefetch" href="/blog/assets/js/24.2c9c4ee6.js"><link rel="prefetch" href="/blog/assets/js/25.b4de33d1.js"><link rel="prefetch" href="/blog/assets/js/26.0bb98ba9.js"><link rel="prefetch" href="/blog/assets/js/27.df98327e.js"><link rel="prefetch" href="/blog/assets/js/28.31289bac.js"><link rel="prefetch" href="/blog/assets/js/29.45af5621.js"><link rel="prefetch" href="/blog/assets/js/30.d5c08e66.js"><link rel="prefetch" href="/blog/assets/js/31.78e43a68.js"><link rel="prefetch" href="/blog/assets/js/32.53ca76ee.js"><link rel="prefetch" href="/blog/assets/js/33.081e8ef6.js"><link rel="prefetch" href="/blog/assets/js/34.a320a186.js"><link rel="prefetch" href="/blog/assets/js/35.f3214c18.js"><link rel="prefetch" href="/blog/assets/js/36.fb4476c3.js"><link rel="prefetch" href="/blog/assets/js/37.09dfc1c5.js"><link rel="prefetch" href="/blog/assets/js/38.6624bf02.js"><link rel="prefetch" href="/blog/assets/js/39.99449e5d.js"><link rel="prefetch" href="/blog/assets/js/4.44654b1a.js"><link rel="prefetch" href="/blog/assets/js/40.80101c19.js"><link rel="prefetch" href="/blog/assets/js/41.0f72d2c3.js"><link rel="prefetch" href="/blog/assets/js/42.c6ded3fe.js"><link rel="prefetch" href="/blog/assets/js/43.6d9424d6.js"><link rel="prefetch" href="/blog/assets/js/44.835e4b5c.js"><link rel="prefetch" href="/blog/assets/js/45.d74d29a2.js"><link rel="prefetch" href="/blog/assets/js/46.d15a7dc0.js"><link rel="prefetch" href="/blog/assets/js/47.8d66ca97.js"><link rel="prefetch" href="/blog/assets/js/48.3c1102e1.js"><link rel="prefetch" href="/blog/assets/js/49.e17a3436.js"><link rel="prefetch" href="/blog/assets/js/5.88de390f.js"><link rel="prefetch" href="/blog/assets/js/50.6750f186.js"><link rel="prefetch" href="/blog/assets/js/51.9f93af9f.js"><link rel="prefetch" href="/blog/assets/js/52.f3ef3b5e.js"><link rel="prefetch" href="/blog/assets/js/53.a6bacd25.js"><link rel="prefetch" href="/blog/assets/js/54.dbb7c9ab.js"><link rel="prefetch" href="/blog/assets/js/55.2562d0c8.js"><link rel="prefetch" href="/blog/assets/js/56.14ea4931.js"><link rel="prefetch" href="/blog/assets/js/57.a2fad780.js"><link rel="prefetch" href="/blog/assets/js/58.8165b971.js"><link rel="prefetch" href="/blog/assets/js/59.556cab0d.js"><link rel="prefetch" href="/blog/assets/js/6.277038ca.js"><link rel="prefetch" href="/blog/assets/js/60.f048aa7c.js"><link rel="prefetch" href="/blog/assets/js/61.bdb307a8.js"><link rel="prefetch" href="/blog/assets/js/62.37a94f10.js"><link rel="prefetch" href="/blog/assets/js/63.74811780.js"><link rel="prefetch" href="/blog/assets/js/64.d3429318.js"><link rel="prefetch" href="/blog/assets/js/65.acfdd371.js"><link rel="prefetch" href="/blog/assets/js/66.cb805d9b.js"><link rel="prefetch" href="/blog/assets/js/67.39f85baa.js"><link rel="prefetch" href="/blog/assets/js/68.7f79766a.js"><link rel="prefetch" href="/blog/assets/js/69.fa8624bd.js"><link rel="prefetch" href="/blog/assets/js/7.474f8f8d.js"><link rel="prefetch" href="/blog/assets/js/70.1f3e978d.js"><link rel="prefetch" href="/blog/assets/js/71.13cd9358.js"><link rel="prefetch" href="/blog/assets/js/72.739b22a8.js"><link rel="prefetch" href="/blog/assets/js/73.95f69ae2.js"><link rel="prefetch" href="/blog/assets/js/74.b6624f6a.js"><link rel="prefetch" href="/blog/assets/js/75.b0d9aa06.js"><link rel="prefetch" href="/blog/assets/js/76.681b78df.js"><link rel="prefetch" href="/blog/assets/js/77.46f6e413.js"><link rel="prefetch" href="/blog/assets/js/78.aebd00ee.js"><link rel="prefetch" href="/blog/assets/js/79.1b784d15.js"><link rel="prefetch" href="/blog/assets/js/8.9428e7ee.js"><link rel="prefetch" href="/blog/assets/js/80.1f550d53.js"><link rel="prefetch" href="/blog/assets/js/81.101cc131.js"><link rel="prefetch" href="/blog/assets/js/82.84fd301c.js"><link rel="prefetch" href="/blog/assets/js/83.b3a8dfaf.js"><link rel="prefetch" href="/blog/assets/js/84.38102a34.js"><link rel="prefetch" href="/blog/assets/js/86.1dabbf00.js"><link rel="prefetch" href="/blog/assets/js/87.763da0f2.js"><link rel="prefetch" href="/blog/assets/js/88.ff6e5f7c.js"><link rel="prefetch" href="/blog/assets/js/89.187e5e16.js"><link rel="prefetch" href="/blog/assets/js/9.da143545.js"><link rel="prefetch" href="/blog/assets/js/90.3c8cff94.js"><link rel="prefetch" href="/blog/assets/js/91.a50bd44d.js"><link rel="prefetch" href="/blog/assets/js/92.5484868f.js"><link rel="prefetch" href="/blog/assets/js/93.d6f43dbe.js"><link rel="prefetch" href="/blog/assets/js/94.822dd217.js"><link rel="prefetch" href="/blog/assets/js/95.cddef6ae.js"><link rel="prefetch" href="/blog/assets/js/96.80e5a938.js"><link rel="prefetch" href="/blog/assets/js/97.1f5e5197.js"><link rel="prefetch" href="/blog/assets/js/98.e3a275c8.js"><link rel="prefetch" href="/blog/assets/js/99.74ef9616.js">
- <link rel="stylesheet" href="/blog/assets/css/0.styles.dc03b589.css">
- </head>
- <body class="theme-mode-light">
- <div id="app" data-server-rendered="true"><div class="theme-container sidebar-open have-rightmenu"><header class="navbar blur"><div title="目录" class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/blog/" class="home-link router-link-active"><img src="/blog/img/logo.png" alt="彪哥博客" class="logo"> <span class="site-name can-hide">彪哥博客</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/blog/" class="nav-link">首页</a></div><div class="nav-item"><a href="http://fseller.com" target="_blank" rel="noopener noreferrer" class="nav-link external">
- 个人游戏网站
- <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="前端" class="dropdown-title"><a href="/blog/web/" class="link-title">前端</a> <span class="title" style="display:none;">前端</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>前端文章</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/blog/pages/8143cc480faf9a11/" class="nav-link">JavaScript</a></li></ul></li><li class="dropdown-item"><h4>学习笔记</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/blog/note/javascript/" class="nav-link">《JavaScript教程》</a></li><li class="dropdown-subitem"><a href="/blog/note/js/" class="nav-link">《JavaScript高级程序设计》</a></li><li class="dropdown-subitem"><a href="/blog/note/es6/" class="nav-link">《ES6 教程》</a></li><li class="dropdown-subitem"><a href="/blog/note/vue/" class="nav-link">《Vue》</a></li><li class="dropdown-subitem"><a href="/blog/note/react/" class="nav-link">《React》</a></li><li class="dropdown-subitem"><a href="/blog/note/typescript-axios/" class="nav-link">《TypeScript 从零实现 axios》</a></li><li class="dropdown-subitem"><a href="/blog/note/git/" class="nav-link">《Git》</a></li><li class="dropdown-subitem"><a href="/blog/pages/51afd6/" class="nav-link">TypeScript</a></li><li class="dropdown-subitem"><a href="/blog/pages/4643cd/" class="nav-link">JS设计模式总结</a></li></ul></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="页面" class="dropdown-title"><a href="/blog/ui/" class="link-title">页面</a> <span class="title" style="display:none;">页面</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/blog/pages/8309a5b876fc95e3/" class="nav-link">HTML</a></li><li class="dropdown-item"><!----> <a href="/blog/pages/0a83b083bdf257cb/" class="nav-link">CSS</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="技术" class="dropdown-title"><a href="/blog/technology/" class="link-title">技术</a> <span class="title" style="display:none;">技术</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/blog/pages/9a7ee40fc232253e/" class="nav-link">技术文档</a></li><li class="dropdown-item"><!----> <a href="/blog/pages/4c778760be26d8b3/" class="nav-link">GitHub技巧</a></li><li class="dropdown-item"><!----> <a href="/blog/pages/117708e0af7f0bd9/" class="nav-link">Nodejs</a></li><li class="dropdown-item"><!----> <a href="/blog/pages/41f87d890d0a02af/" class="nav-link">博客搭建</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="更多" class="dropdown-title"><a href="/blog/more/" class="link-title">更多</a> <span class="title" style="display:none;">更多</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/blog/pages/f2a556/" class="nav-link">学习</a></li><li class="dropdown-item"><!----> <a href="/blog/pages/aea6571b7a8bae86/" class="nav-link">面试</a></li><li class="dropdown-item"><!----> <a href="/blog/pages/2d615df9a36a98ed/" class="nav-link">心情杂货</a></li><li class="dropdown-item"><!----> <a href="/blog/pages/baaa02/" class="nav-link">实用技巧</a></li><li class="dropdown-item"><!----> <a href="/blog/friends/" class="nav-link">友情链接</a></li></ul></div></div><div class="nav-item"><a href="/blog/about/" class="nav-link">关于</a></div><div class="nav-item"><a href="/blog/pages/beb6c0bd8a66cea6/" class="nav-link">收藏</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="索引" class="dropdown-title"><a href="/blog/archives/" class="link-title">索引</a> <span class="title" style="display:none;">索引</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/blog/categories/" class="nav-link">分类</a></li><li class="dropdown-item"><!----> <a href="/blog/tags/" class="nav-link">标签</a></li><li class="dropdown-item"><!----> <a href="/blog/archives/" class="nav-link">归档</a></li></ul></div></div> <a href="https://github.com/heBody/blog" target="_blank" rel="noopener noreferrer" class="repo-link">
- GitHub
- <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav></div></header> <div class="sidebar-mask"></div> <div class="sidebar-hover-trigger"></div> <aside class="sidebar" style="display:none;"><div class="blogger"><img src="/blog/img/head.jpg"> <div class="blogger-info"><h3>彪哥</h3> <span>爱好前端</span></div></div> <nav class="nav-links"><div class="nav-item"><a href="/blog/" class="nav-link">首页</a></div><div class="nav-item"><a href="http://fseller.com" target="_blank" rel="noopener noreferrer" class="nav-link external">
- 个人游戏网站
- <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="前端" class="dropdown-title"><a href="/blog/web/" class="link-title">前端</a> <span class="title" style="display:none;">前端</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>前端文章</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/blog/pages/8143cc480faf9a11/" class="nav-link">JavaScript</a></li></ul></li><li class="dropdown-item"><h4>学习笔记</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="/blog/note/javascript/" class="nav-link">《JavaScript教程》</a></li><li class="dropdown-subitem"><a href="/blog/note/js/" class="nav-link">《JavaScript高级程序设计》</a></li><li class="dropdown-subitem"><a href="/blog/note/es6/" class="nav-link">《ES6 教程》</a></li><li class="dropdown-subitem"><a href="/blog/note/vue/" class="nav-link">《Vue》</a></li><li class="dropdown-subitem"><a href="/blog/note/react/" class="nav-link">《React》</a></li><li class="dropdown-subitem"><a href="/blog/note/typescript-axios/" class="nav-link">《TypeScript 从零实现 axios》</a></li><li class="dropdown-subitem"><a href="/blog/note/git/" class="nav-link">《Git》</a></li><li class="dropdown-subitem"><a href="/blog/pages/51afd6/" class="nav-link">TypeScript</a></li><li class="dropdown-subitem"><a href="/blog/pages/4643cd/" class="nav-link">JS设计模式总结</a></li></ul></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="页面" class="dropdown-title"><a href="/blog/ui/" class="link-title">页面</a> <span class="title" style="display:none;">页面</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/blog/pages/8309a5b876fc95e3/" class="nav-link">HTML</a></li><li class="dropdown-item"><!----> <a href="/blog/pages/0a83b083bdf257cb/" class="nav-link">CSS</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="技术" class="dropdown-title"><a href="/blog/technology/" class="link-title">技术</a> <span class="title" style="display:none;">技术</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/blog/pages/9a7ee40fc232253e/" class="nav-link">技术文档</a></li><li class="dropdown-item"><!----> <a href="/blog/pages/4c778760be26d8b3/" class="nav-link">GitHub技巧</a></li><li class="dropdown-item"><!----> <a href="/blog/pages/117708e0af7f0bd9/" class="nav-link">Nodejs</a></li><li class="dropdown-item"><!----> <a href="/blog/pages/41f87d890d0a02af/" class="nav-link">博客搭建</a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="更多" class="dropdown-title"><a href="/blog/more/" class="link-title">更多</a> <span class="title" style="display:none;">更多</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/blog/pages/f2a556/" class="nav-link">学习</a></li><li class="dropdown-item"><!----> <a href="/blog/pages/aea6571b7a8bae86/" class="nav-link">面试</a></li><li class="dropdown-item"><!----> <a href="/blog/pages/2d615df9a36a98ed/" class="nav-link">心情杂货</a></li><li class="dropdown-item"><!----> <a href="/blog/pages/baaa02/" class="nav-link">实用技巧</a></li><li class="dropdown-item"><!----> <a href="/blog/friends/" class="nav-link">友情链接</a></li></ul></div></div><div class="nav-item"><a href="/blog/about/" class="nav-link">关于</a></div><div class="nav-item"><a href="/blog/pages/beb6c0bd8a66cea6/" class="nav-link">收藏</a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="索引" class="dropdown-title"><a href="/blog/archives/" class="link-title">索引</a> <span class="title" style="display:none;">索引</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/blog/categories/" class="nav-link">分类</a></li><li class="dropdown-item"><!----> <a href="/blog/tags/" class="nav-link">标签</a></li><li class="dropdown-item"><!----> <a href="/blog/archives/" class="nav-link">归档</a></li></ul></div></div> <a href="https://github.com/heBody/blog" target="_blank" rel="noopener noreferrer" class="repo-link">
- GitHub
- <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>我做了一个手写春联小网页,祝大家虎年暴富</span> <!----></p> <!----></section></li></ul> </aside> <div><main class="page"><div class="theme-vdoing-wrapper "><div class="articleInfo-wrap" data-v-06970110><div class="articleInfo" data-v-06970110><!----> <div class="info" data-v-06970110><div title="作者" class="author iconfont icon-touxiang" data-v-06970110><a href="https://github.com/heBody" target="_blank" title="作者" class="beLink" data-v-06970110>heBody</a></div> <div title="创建时间" class="date iconfont icon-riqi" data-v-06970110><a href="javascript:;" data-v-06970110>2022-01-28</a></div> <div title="分类" class="date iconfont icon-wenjian" data-v-06970110><a href="/blog/categories/?category=%E9%9A%8F%E7%AC%94" data-v-06970110>随笔 </a></div></div></div></div> <!----> <div class="content-wrapper"><div class="right-menu-wrapper"><div class="right-menu-margin"><div class="right-menu-title">目录</div> <div class="right-menu-content"></div></div></div> <h1><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAABGpJREFUSA3tVVtoXFUU3fvOI53UlmCaKIFmwEhsE7QK0ipFEdHEKpXaZGrp15SINsXUWvBDpBgQRKi0+KKoFeJHfZA+ED9KKoIU2gYD9UejTW4rVIzm0VSTziPzuNu1z507dibTTjL4U/DAzLn3nL3X2o91ziX6f9wMFdh6Jvbm9nNSV0msViVO6tN1Rm7NMu2OpeJ9lWBUTDxrJbYTS0hInuwciu9eLHlFxCLCZEk3MegsJmZ5K/JD6t7FkFdEvGUo1g7qJoG3MHImqRIn8/nzY1K9UPKKiJmtnUqHVE3Gbuay6vJE/N2FEmuxFjW2nUuE0yQXRRxLiTUAzs36zhZvOXJPdX850EVnnLZkB8prodQoM5JGj7Xk2mvC7JB8tG04Ef5PiXtG0UtxupRQSfTnBoCy554x18yJHI6I+G5Eru4LHmPJZEQsrvPUbMiA8G/WgMK7w7I+ez7++o2ANfbrjvaOl1tFMs+htG3IrZH9/hDX1Pr8Tc0UvH8tcX29KzAgIGcEkINyW5BF9x891hw6VYqgJHEk0huccS7vh3C6gTiODL+26huuBtbct8eZnqLML8PkxGYpuPZBqtqwkSjgc4mB5gbgig5i+y0UDK35LMxXisn9xQtK+nd26gTIHsHe/oblK/b29fUmN/8Y+9jAQrnBp56m1LcDlDp9irKTExSKduXJVWSqdBMA08pEJnEIOB3FPPMybu/oeV8zFeYN3xx576Q6RH+VmplE4ncQV5v+5rzSoyOU7PuEAg8g803PwBJ0CExno/jcMbN8tONYeOmHiuUNryvm3fRUy4tMPVLdAGkUhNWuggGrJcXPv+ouCjz0MKUHz1J2/E8IC9nqTabcxgaBYM0hPhD5Y65FsbxRQKxCQrDjDctW7PUM3HuZunFyifSAqEfuzCp48Il24luWUWZoyJCaPR82jE0+kFA643wRFVni4RYSq3ohJO2pZ7B5dO4xkDWbEpossJPLSrPjYID8rS2UHTlvyNxqIGsg674XJJ7vnh5L7PNwC4hh2sjCI96mzszOTpxLF0T7l88Yz7lAuK6OnL8gXLOnTvpzSb22YG8W7us3jSebFHeeqnXRG1vt+MoUM84LQIBmMsCTAcOauTh0T0l0neQK7m2bLMt2mGxU3HYssS0J2cdv5wljlPsrIuZLAG/2DOZIXgCYT8uMGZN+e2kSirfxZOPCsC0f24nTZzspnVn9VePS1Z5vubmAGGXG8ZFno9Hel0yfA5ZPhF7Dh972BQJ2qCpgH67lmWtBYbvk6sz02wjky2vXyz0XErP/kFB619js1BtwfOV4OPRqOQBjy3Qbk18vigUPPSD5ceHnwck7W9bhAqZdd7SuG7w4/P2F/GaJh8c7e9qgow+Q7cGBo+98WsLkuktFqiZabtXuQTu/Y5ETbR0v7tNSFnvrmu6pjdoan2KjMu8q/Hmj1EfCO2ZGfEIbIXKUlw8qaX9/b2oeSJmFksSeT/Fn0V3nSypChh4Gjh74ybO9aeZ/AN2dwciu2/MhAAAAAElFTkSuQmCC">我做了一个手写春联小网页,祝大家虎年暴富<span class="title-tag">原创</span></h1> <div class="theme-vdoing-content content__default"><h3 id="前言"><a href="#前言" class="header-anchor">#</a> 前言</h3> <p>虎年春节快到了,首先祝大家新年快乐,轻松暴富。
- 最近在网上经常看到生成春联的文章,不过这些小demo要么功能简陋,要么UI特别‘程序员’,满足不了我挑剔的眼光。干脆我自己做一个吧,顺便简单体验一下vite+vue3。(因为页面相对简单,vue组件风格还是使用选项式api,重点还是想把产品快速做出来。)</p> <p align="center"><img src="https://img-blog.csdnimg.cn/img_convert/185c88180b87ac7277072280a0c144ce.png" width="500" style="cursor:zoom-in;"></p> <h3 id="产品构思"><a href="#产品构思" class="header-anchor">#</a> 产品构思</h3> <p>包含<code>手写春节</code>和<code>生成春联</code>两大功能:</p> <ul><li><p><strong>手写春联</strong></p> <ul><li>模拟用笔写字的字迹</li> <li>选择画笔颜色</li> <li>调整画笔大小</li> <li>清空画布</li> <li>撤回笔画</li> <li>切换上、下联、横批、福字</li> <li>随机切换对联提示</li> <li>预览图片和下载</li> <li>贴春联海报和下载</li></ul></li> <li><p><strong>生成模式</strong></p> <ul><li>选择画笔颜色</li> <li>挑选生成的对联</li> <li>输入对联</li> <li>随机切换对联</li> <li>贴春联海报和下载</li></ul></li> <li><p><strong>其他</strong></p> <ul><li>快速切换模式按钮</li> <li>可控制的背景音乐</li> <li>微信分享网页</li></ul></li></ul> <h3 id="设计"><a href="#设计" class="header-anchor">#</a> 设计</h3> <p><img src="https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/392f2036c0ce4c97b8562e6f17606491~tplv-k3u1fbpfcp-watermark.image?" alt="222.jpg"></p> <h3 id="开发"><a href="#开发" class="header-anchor">#</a> 开发</h3> <ul><li><strong>技术栈</strong> <ul><li>vite (打包&构建)</li> <li>vue3 (页面开发)</li> <li>vant(ui)</li> <li>sass (css)</li> <li><a href="https://github.com/linjc/smooth-signature" target="_blank" rel="noopener noreferrer">smooth-signature.js (带笔锋手写库)<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></li></ul></li></ul> <div class="language-js line-numbers-mode"><pre class="language-js"><code><span class="token operator"><</span>template<span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"wrap"</span> <span class="token operator">:</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"'mode-' + mode"</span> @touchstart<span class="token operator">=</span><span class="token string">"handleTouchstart"</span><span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 切换模式按钮 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"toggle-mode-btn"</span> @click<span class="token operator">=</span><span class="token string">"toggleMode"</span><span class="token operator">></span>
- <span class="token punctuation">{</span><span class="token punctuation">{</span> mode <span class="token operator">===</span> <span class="token number">1</span> <span class="token operator">?</span> <span class="token string">'手写'</span> <span class="token operator">:</span> <span class="token string">'生成'</span> <span class="token punctuation">}</span><span class="token punctuation">}</span>
- <span class="token operator"><</span>i <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"iconfont icon-qiehuan"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>i<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 工具栏 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>div
- <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"actions"</span>
- <span class="token operator">:</span>style<span class="token operator">=</span><span class="token string">"{ borderTopRightRadius: colorListVisibility ? '0' : '5px' }"</span>
- <span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 手写模式显示 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>template v<span class="token operator">-</span><span class="token keyword">if</span><span class="token operator">=</span><span class="token string">"mode === 1"</span><span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 调色板 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"palette btn-block"</span><span class="token operator">></span>
- <span class="token operator"><</span>div
- <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"cur-color"</span>
- @click<span class="token operator">=</span><span class="token string">"togglePalette"</span>
- <span class="token operator">:</span>style<span class="token operator">=</span><span class="token string">"{ background: colorList[curColorIndex] }"</span>
- <span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span>ul <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"colorList"</span> v<span class="token operator">-</span>show<span class="token operator">=</span><span class="token string">"colorListVisibility"</span><span class="token operator">></span>
- <span class="token operator"><</span>li
- v<span class="token operator">-</span><span class="token keyword">for</span><span class="token operator">=</span><span class="token string">"(item, index) in colorList"</span>
- <span class="token operator">:</span>key<span class="token operator">=</span><span class="token string">"item"</span>
- <span class="token operator">:</span>style<span class="token operator">=</span><span class="token string">"{ background: item }"</span>
- @click<span class="token operator">=</span><span class="token string">"selectColor(index)"</span>
- <span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>li<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>ul<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 滑块 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"slider-box btn-block"</span><span class="token operator">></span>
- <span class="token operator"><</span>van<span class="token operator">-</span>slider
- v<span class="token operator">-</span>model<span class="token operator">=</span><span class="token string">"progress"</span>
- vertical
- @change<span class="token operator">=</span><span class="token string">"changeProgress"</span>
- bar<span class="token operator">-</span>height<span class="token operator">=</span><span class="token string">"28"</span>
- active<span class="token operator">-</span>color<span class="token operator">=</span><span class="token string">"transparent"</span>
- <span class="token operator">:</span>min<span class="token operator">=</span><span class="token string">"50"</span>
- <span class="token operator">:</span>max<span class="token operator">=</span><span class="token string">"150"</span>
- <span class="token operator">></span>
- <span class="token operator"><</span>template #button<span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"custom-button"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>template<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>van<span class="token operator">-</span>slider<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 清空 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"btn"</span> @click<span class="token operator">=</span><span class="token string">"handleClear"</span><span class="token operator">></span>
- <span class="token operator"><</span>i <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"iconfont icon-lajitong"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>i<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 撤销 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"btn"</span> @click<span class="token operator">=</span><span class="token string">"handleUndo"</span><span class="token operator">></span>
- <span class="token operator"><</span>i <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"iconfont icon-fanhui"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>i<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"line"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 切换画布的按钮 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>div
- <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"btn"</span>
- <span class="token operator">:</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"{ 'cur-active': curCanvasIndex === index }"</span>
- v<span class="token operator">-</span><span class="token keyword">for</span><span class="token operator">=</span><span class="token string">"(item, index) in canvasList"</span>
- <span class="token operator">:</span>key<span class="token operator">=</span><span class="token string">"item.name"</span>
- @click<span class="token operator">=</span><span class="token string">"changeCanvas(index)"</span>
- <span class="token operator">></span>
- <span class="token punctuation">{</span><span class="token punctuation">{</span> item<span class="token punctuation">.</span>name <span class="token punctuation">}</span><span class="token punctuation">}</span>
- <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"line"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"btn prominent"</span> @click<span class="token operator">=</span><span class="token string">"handlePreview"</span><span class="token operator">></span>预览<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"btn prominent"</span> @click<span class="token operator">=</span><span class="token string">"openPosters"</span><span class="token operator">></span>贴联<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>template<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 生成模式显示 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>template v<span class="token operator">-</span><span class="token keyword">else</span><span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 选颜色 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>div
- <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"color-list-quick"</span>
- <span class="token operator">:</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"{ active: curColorIndex === index }"</span>
- v<span class="token operator">-</span><span class="token keyword">for</span><span class="token operator">=</span><span class="token string">"(item, index) in colorList"</span>
- <span class="token operator">:</span>key<span class="token operator">=</span><span class="token string">"item"</span>
- <span class="token operator">:</span>style<span class="token operator">=</span><span class="token string">"{ background: item }"</span>
- @click<span class="token operator">=</span><span class="token string">"selectColor(index)"</span>
- <span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"line"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"btn"</span> @click<span class="token operator">=</span><span class="token string">"showPickBox = true"</span><span class="token operator">></span>挑选<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"btn"</span> @click<span class="token operator">=</span><span class="token string">"showInputBox = true"</span><span class="token operator">></span>输入<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 挑选对联弹窗 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>van<span class="token operator">-</span>action<span class="token operator">-</span>sheet v<span class="token operator">-</span>model<span class="token operator">:</span>show<span class="token operator">=</span><span class="token string">"showPickBox"</span> title<span class="token operator">=</span><span class="token string">"请挑选对联"</span><span class="token operator">></span>
- <span class="token operator"><</span>ul <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"duilian-list"</span><span class="token operator">></span>
- <span class="token operator"><</span>li
- v<span class="token operator">-</span><span class="token keyword">for</span><span class="token operator">=</span><span class="token string">"(item, index) in duilianList"</span>
- <span class="token operator">:</span>key<span class="token operator">=</span><span class="token string">"index"</span>
- @click<span class="token operator">=</span><span class="token string">"handlePickDuilian(item)"</span>
- <span class="token operator">></span>
- <span class="token operator"><</span>span<span class="token operator">></span><span class="token punctuation">{</span><span class="token punctuation">{</span> item<span class="token punctuation">.</span>shang <span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token operator"><</span><span class="token operator">/</span>span
- <span class="token operator">></span>, <span class="token operator"><</span>span<span class="token operator">></span><span class="token punctuation">{</span><span class="token punctuation">{</span> item<span class="token punctuation">.</span>xia <span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token operator"><</span><span class="token operator">/</span>span
- <span class="token operator">></span>。
- <span class="token operator"><</span>span<span class="token operator">></span><span class="token punctuation">{</span><span class="token punctuation">{</span> item<span class="token punctuation">.</span>heng <span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token operator"><</span><span class="token operator">/</span>span<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>li<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>ul<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>van<span class="token operator">-</span>action<span class="token operator">-</span>sheet<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 输入对联弹窗 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>van<span class="token operator">-</span>action<span class="token operator">-</span>sheet v<span class="token operator">-</span>model<span class="token operator">:</span>show<span class="token operator">=</span><span class="token string">"showInputBox"</span> title<span class="token operator">=</span><span class="token string">"请输入对联"</span><span class="token operator">></span>
- <span class="token operator"><</span>van<span class="token operator">-</span>form @submit<span class="token operator">=</span><span class="token string">"handleSubmitInput"</span><span class="token operator">></span>
- <span class="token operator"><</span>van<span class="token operator">-</span>cell<span class="token operator">-</span>group inset<span class="token operator">></span>
- <span class="token operator"><</span>van<span class="token operator">-</span>field
- v<span class="token operator">-</span>model<span class="token operator">=</span><span class="token string">"shanglian"</span>
- name<span class="token operator">=</span><span class="token string">"shang"</span>
- label<span class="token operator">=</span><span class="token string">"上联"</span>
- placeholder<span class="token operator">=</span><span class="token string">"上联"</span>
- <span class="token operator">:</span>rules<span class="token operator">=</span>"<span class="token punctuation">[</span>
- <span class="token punctuation">{</span>
- <span class="token literal-property property">required</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">message</span><span class="token operator">:</span> <span class="token string">'请输入7位汉字上联'</span><span class="token punctuation">,</span>
- <span class="token literal-property property">pattern</span><span class="token operator">:</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">^[\u4e00-\u9fa5]{7}$</span><span class="token regex-delimiter">/</span></span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">]</span>"
- clearable
- <span class="token operator">/</span><span class="token operator">></span>
- <span class="token operator"><</span>van<span class="token operator">-</span>field
- v<span class="token operator">-</span>model<span class="token operator">=</span><span class="token string">"xialian"</span>
- name<span class="token operator">=</span><span class="token string">"xia"</span>
- label<span class="token operator">=</span><span class="token string">"下联"</span>
- placeholder<span class="token operator">=</span><span class="token string">"下联"</span>
- <span class="token operator">:</span>rules<span class="token operator">=</span>"<span class="token punctuation">[</span>
- <span class="token punctuation">{</span>
- <span class="token literal-property property">required</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">message</span><span class="token operator">:</span> <span class="token string">'请输入7位汉字下联'</span><span class="token punctuation">,</span>
- <span class="token literal-property property">pattern</span><span class="token operator">:</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">^[\u4e00-\u9fa5]{7}$</span><span class="token regex-delimiter">/</span></span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">]</span>"
- clearable
- <span class="token operator">/</span><span class="token operator">></span>
- <span class="token operator"><</span>van<span class="token operator">-</span>field
- v<span class="token operator">-</span>model<span class="token operator">=</span><span class="token string">"hengpi"</span>
- name<span class="token operator">=</span><span class="token string">"heng"</span>
- label<span class="token operator">=</span><span class="token string">"横批"</span>
- placeholder<span class="token operator">=</span><span class="token string">"横批"</span>
- <span class="token operator">:</span>rules<span class="token operator">=</span>"<span class="token punctuation">[</span>
- <span class="token punctuation">{</span>
- <span class="token literal-property property">required</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">message</span><span class="token operator">:</span> <span class="token string">'请输入4位汉字横批'</span><span class="token punctuation">,</span>
- <span class="token literal-property property">pattern</span><span class="token operator">:</span> <span class="token regex"><span class="token regex-delimiter">/</span><span class="token regex-source language-regex">^[\u4e00-\u9fa5]{4}$</span><span class="token regex-delimiter">/</span></span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">]</span>"
- clearable
- <span class="token operator">/</span><span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>van<span class="token operator">-</span>cell<span class="token operator">-</span>group<span class="token operator">></span>
- <span class="token operator"><</span>div style<span class="token operator">=</span><span class="token string">"margin: 16px"</span><span class="token operator">></span>
- <span class="token operator"><</span>van<span class="token operator">-</span>button
- round
- block
- type<span class="token operator">=</span><span class="token string">"primary"</span>
- native<span class="token operator">-</span>type<span class="token operator">=</span><span class="token string">"submit"</span>
- color<span class="token operator">=</span><span class="token string">"linear-gradient(to right, #ff6034, #c33825)"</span>
- <span class="token operator">></span>
- 完成
- <span class="token operator"><</span><span class="token operator">/</span>van<span class="token operator">-</span>button<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>van<span class="token operator">-</span>form<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>van<span class="token operator">-</span>action<span class="token operator">-</span>sheet<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>template<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 模式<span class="token number">1</span><span class="token operator">-</span>春联画布 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>div
- v<span class="token operator">-</span>show<span class="token operator">=</span><span class="token string">"mode === 1"</span>
- v<span class="token operator">-</span><span class="token keyword">for</span><span class="token operator">=</span><span class="token string">"(item, index) in canvasList"</span>
- <span class="token operator">:</span>key<span class="token operator">=</span><span class="token string">"item.name"</span>
- <span class="token operator">></span>
- <span class="token operator"><</span>canvas
- <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"canvas"</span>
- <span class="token operator">:</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"item.className"</span>
- v<span class="token operator">-</span>show<span class="token operator">=</span><span class="token string">"curCanvasIndex === index"</span>
- <span class="token operator">:</span>style<span class="token operator">=</span>"<span class="token punctuation">{</span>
- <span class="token literal-property property">marginTop</span><span class="token operator">:</span>
- item<span class="token punctuation">.</span>height <span class="token operator"><</span> clientHeight
- <span class="token operator">?</span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token punctuation">(</span>clientHeight <span class="token operator">-</span> item<span class="token punctuation">.</span>height<span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token number">2</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">px</span><span class="token template-punctuation string">`</span></span>
- <span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>
- <span class="token literal-property property">marginLeft</span><span class="token operator">:</span>
- item<span class="token punctuation">.</span>width <span class="token operator"><</span> clientWidth <span class="token operator">?</span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token punctuation">(</span>clientWidth <span class="token operator">-</span> item<span class="token punctuation">.</span>width<span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token number">2</span><span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">px</span><span class="token template-punctuation string">`</span></span> <span class="token operator">:</span> <span class="token number">0</span>
- <span class="token punctuation">}</span>"
- <span class="token operator">/</span><span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 模式<span class="token number">2</span><span class="token operator">-</span>春联画布 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>div v<span class="token operator">-</span>show<span class="token operator">=</span><span class="token string">"mode === 2"</span> <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"canvas-mode-2"</span><span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"row"</span><span class="token operator">></span>
- <span class="token operator"><</span>canvas id<span class="token operator">=</span><span class="token string">"canvas-top"</span> <span class="token operator">:</span>width<span class="token operator">=</span><span class="token string">"200 * scale"</span> <span class="token operator">:</span>height<span class="token operator">=</span><span class="token string">"60 * scale"</span> <span class="token operator">/</span><span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"row"</span><span class="token operator">></span>
- <span class="token operator"><</span>canvas id<span class="token operator">=</span><span class="token string">"canvas-left"</span> <span class="token operator">:</span>width<span class="token operator">=</span><span class="token string">"60 * scale"</span> <span class="token operator">:</span>height<span class="token operator">=</span><span class="token string">"364 * scale"</span> <span class="token operator">/</span><span class="token operator">></span>
- <span class="token operator"><</span>canvas id<span class="token operator">=</span><span class="token string">"canvas-right"</span> <span class="token operator">:</span>width<span class="token operator">=</span><span class="token string">"60 * scale"</span> <span class="token operator">:</span>height<span class="token operator">=</span><span class="token string">"364 * scale"</span> <span class="token operator">/</span><span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 贴春联按钮 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>Button <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"btn-posters"</span> @click<span class="token operator">=</span><span class="token string">"openPosters"</span> <span class="token operator">/</span><span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> footer<span class="token operator">-</span>当前对联提示 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>footer v<span class="token operator">-</span><span class="token keyword">if</span><span class="token operator">=</span><span class="token string">"duilian.shang"</span><span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"refresh-btn"</span> @click<span class="token operator">=</span><span class="token string">"handleRefresh(true)"</span><span class="token operator">></span>
- <span class="token operator"><</span>i <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"iconfont icon-shuaxin"</span> <span class="token operator">:</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"{ rotate: isRotate }"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>i<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span>dl <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"duilian"</span><span class="token operator">></span>
- <span class="token operator"><</span>dt<span class="token operator">></span>对联<span class="token operator"><</span><span class="token operator">/</span>dt<span class="token operator">></span>
- <span class="token operator"><</span>dd<span class="token operator">></span>
- <span class="token operator"><</span>div<span class="token operator">></span><span class="token punctuation">{</span><span class="token punctuation">{</span> duilian<span class="token punctuation">.</span>shang <span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span>div<span class="token operator">></span><span class="token punctuation">{</span><span class="token punctuation">{</span> duilian<span class="token punctuation">.</span>xia <span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>dd<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>dl<span class="token operator">></span>
- <span class="token operator"><</span>dl<span class="token operator">></span>
- <span class="token operator"><</span>dt<span class="token operator">></span>横批<span class="token operator"><</span><span class="token operator">/</span>dt<span class="token operator">></span>
- <span class="token operator"><</span>dd<span class="token operator">></span><span class="token punctuation">{</span><span class="token punctuation">{</span> duilian<span class="token punctuation">.</span>heng <span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token operator"><</span><span class="token operator">/</span>dd<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>dl<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>footer<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 分享按钮 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"share-btn"</span> v<span class="token operator">-</span><span class="token keyword">if</span><span class="token operator">=</span><span class="token string">"isShowShareBtn"</span> @click<span class="token operator">=</span><span class="token string">"isShowShareTip = true"</span><span class="token operator">></span>
- <span class="token operator"><</span>i <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"iconfont icon-fenxiang"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>i<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 微信分享提示语 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>div
- <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"share-tip"</span>
- v<span class="token operator">-</span><span class="token keyword">if</span><span class="token operator">=</span><span class="token string">"isShowShareTip"</span>
- @click<span class="token operator">=</span><span class="token string">"isShowShareTip = false"</span>
- <span class="token operator">></span>
- 点击右上角把这个工具分享给朋友
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"hand"</span><span class="token operator">></span>👆<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 保存tip <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>p v<span class="token operator">-</span><span class="token keyword">if</span><span class="token operator">=</span><span class="token string">"isShowTip"</span> <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"download-tip"</span><span class="token operator">></span><span class="token operator">*</span>长按图片保存或转发<span class="token operator"><</span><span class="token operator">/</span>p<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 版权 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"copyright"</span><span class="token operator">></span>公众号「有趣研究社」 ©版权所有<span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 载入图片元素,用于快速贴图使用<span class="token punctuation">,</span> 注意设置crossorigin<span class="token operator">=</span><span class="token string">"anonymous"</span>解决跨域 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>div v<span class="token operator">-</span><span class="token keyword">if</span><span class="token operator">=</span><span class="token string">"isReadImages"</span><span class="token operator">></span>
- <span class="token operator"><</span>img
- crossorigin<span class="token operator">=</span><span class="token string">"anonymous"</span>
- v<span class="token operator">-</span><span class="token keyword">for</span><span class="token operator">=</span><span class="token string">"(item, index) in bgList"</span>
- <span class="token operator">:</span>src<span class="token operator">=</span><span class="token string">"item"</span>
- <span class="token operator">:</span>key<span class="token operator">=</span><span class="token string">"item"</span>
- <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"hide-img"</span>
- <span class="token operator">:</span>id<span class="token operator">=</span><span class="token string">"`bg-img-` + index"</span>
- <span class="token operator">/</span><span class="token operator">></span>
- <span class="token operator"><</span>img
- crossorigin<span class="token operator">=</span><span class="token string">"anonymous"</span>
- <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"hide-img"</span>
- id<span class="token operator">=</span><span class="token string">"qrcode"</span>
- src<span class="token operator">=</span><span class="token string">"https://cdn.jsdelivr.net/gh/xugaoyi/image_store2@master/img/qrcode.zul0pldsuao.png"</span>
- <span class="token operator">/</span><span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">!</span><span class="token operator">--</span> 背景音乐 <span class="token operator">--</span><span class="token operator">></span>
- <span class="token operator"><</span>audio
- src<span class="token operator">=</span><span class="token string">"https://cdn.jsdelivr.net/gh/xugaoyi/image_store2@master/cjxq.mp3"</span>
- id<span class="token operator">=</span><span class="token string">"bgm"</span>
- ref<span class="token operator">=</span><span class="token string">"bgm"</span>
- loop
- <span class="token operator">/</span><span class="token operator">></span>
- <span class="token operator"><</span>div
- <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"play-btn"</span>
- <span class="token operator">:</span><span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"{ paused: !isPlay }"</span>
- ref<span class="token operator">=</span><span class="token string">"playBtn"</span>
- @click<span class="token operator">=</span><span class="token string">"handlePlay"</span>
- <span class="token operator">></span>
- <span class="token operator"><</span>i <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"iconfont icon-yinle"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>i<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span>div <span class="token keyword">class</span><span class="token operator">=</span><span class="token string">"body-bg-img"</span><span class="token operator">></span><span class="token operator"><</span><span class="token operator">/</span>div<span class="token operator">></span>
- <span class="token operator"><</span><span class="token operator">/</span>template<span class="token operator">></span>
- <span class="token operator"><</span>script<span class="token operator">></span>
- <span class="token keyword">import</span> <span class="token punctuation">{</span> ImagePreview<span class="token punctuation">,</span> Notify <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'vant'</span>
- <span class="token keyword">import</span> <span class="token punctuation">{</span> isWX<span class="token punctuation">,</span> isMobile <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'@/utils'</span>
- <span class="token keyword">import</span> Button <span class="token keyword">from</span> <span class="token string">'@/components/Button.vue'</span>
- <span class="token keyword">import</span> dl <span class="token keyword">from</span> <span class="token string">'@/assets/img/yh/dl.jpeg'</span>
- <span class="token keyword">import</span> hp <span class="token keyword">from</span> <span class="token string">'@/assets/img/yh/hp.jpeg'</span>
- <span class="token keyword">import</span> fz <span class="token keyword">from</span> <span class="token string">'@/assets/img/yh/fz.png'</span>
- <span class="token comment">// 对联数据</span>
- <span class="token keyword">import</span> duilianList <span class="token keyword">from</span> <span class="token string">'@/mock/duilian'</span>
- <span class="token keyword">const</span> <span class="token constant">PROPORTION</span> <span class="token operator">=</span> <span class="token number">0.37</span> <span class="token comment">// 图片缩小比例</span>
- <span class="token keyword">const</span> <span class="token constant">INSTANTIATE_NAME</span> <span class="token operator">=</span> <span class="token string">'signature'</span> <span class="token comment">// 实例名称</span>
- <span class="token keyword">const</span> <span class="token constant">MIN_WIDTH</span> <span class="token operator">=</span> <span class="token number">3</span> <span class="token comment">// 画笔最小宽</span>
- <span class="token keyword">const</span> <span class="token constant">MAX_WIDTH</span> <span class="token operator">=</span> <span class="token number">12</span> <span class="token comment">// 画笔最大宽</span>
- <span class="token comment">// 海报背景图大小</span>
- <span class="token keyword">const</span> <span class="token constant">BG_WIDTH</span> <span class="token operator">=</span> <span class="token number">750</span>
- <span class="token keyword">const</span> <span class="token constant">BG_HEIGHT</span> <span class="token operator">=</span> <span class="token number">1448</span>
- <span class="token comment">// 贴图定位和大小</span>
- <span class="token keyword">const</span> <span class="token constant">POSITION</span> <span class="token operator">=</span> <span class="token punctuation">[</span>
- <span class="token punctuation">{</span> <span class="token literal-property property">left</span><span class="token operator">:</span> <span class="token number">57</span><span class="token punctuation">,</span> <span class="token literal-property property">top</span><span class="token operator">:</span> <span class="token number">510</span><span class="token punctuation">,</span> <span class="token literal-property property">width</span><span class="token operator">:</span> <span class="token number">90</span><span class="token punctuation">,</span> <span class="token literal-property property">height</span><span class="token operator">:</span> <span class="token number">546</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token comment">// 上联</span>
- <span class="token punctuation">{</span> <span class="token literal-property property">left</span><span class="token operator">:</span> <span class="token number">600</span><span class="token punctuation">,</span> <span class="token literal-property property">top</span><span class="token operator">:</span> <span class="token number">510</span><span class="token punctuation">,</span> <span class="token literal-property property">width</span><span class="token operator">:</span> <span class="token number">90</span><span class="token punctuation">,</span> <span class="token literal-property property">height</span><span class="token operator">:</span> <span class="token number">546</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token comment">// 下联</span>
- <span class="token punctuation">{</span> <span class="token literal-property property">left</span><span class="token operator">:</span> <span class="token number">225</span><span class="token punctuation">,</span> <span class="token literal-property property">top</span><span class="token operator">:</span> <span class="token number">345</span><span class="token punctuation">,</span> <span class="token literal-property property">width</span><span class="token operator">:</span> <span class="token number">300</span><span class="token punctuation">,</span> <span class="token literal-property property">height</span><span class="token operator">:</span> <span class="token number">90</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token comment">// 横幅</span>
- <span class="token punctuation">{</span> <span class="token literal-property property">left</span><span class="token operator">:</span> <span class="token number">460</span><span class="token punctuation">,</span> <span class="token literal-property property">top</span><span class="token operator">:</span> <span class="token number">450</span><span class="token punctuation">,</span> <span class="token literal-property property">width</span><span class="token operator">:</span> <span class="token number">130</span><span class="token punctuation">,</span> <span class="token literal-property property">height</span><span class="token operator">:</span> <span class="token number">130</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token comment">// 福字</span>
- <span class="token punctuation">]</span>
- <span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">"Home"</span><span class="token punctuation">,</span>
- <span class="token literal-property property">components</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- Button
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">data</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">return</span> <span class="token punctuation">{</span>
- duilianList<span class="token punctuation">,</span>
- <span class="token literal-property property">mode</span><span class="token operator">:</span> <span class="token function">Number</span><span class="token punctuation">(</span>localStorage<span class="token punctuation">.</span><span class="token function">getItem</span><span class="token punctuation">(</span><span class="token string">'mode'</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token operator">||</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token comment">// 1 手写,2 生成</span>
- <span class="token literal-property property">curCanvasIndex</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token comment">// 显示哪个画布</span>
- <span class="token literal-property property">progress</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span> <span class="token comment">// 画笔大小的刻度</span>
- <span class="token literal-property property">clientWidth</span><span class="token operator">:</span> document<span class="token punctuation">.</span>documentElement<span class="token punctuation">.</span>clientWidth<span class="token punctuation">,</span>
- <span class="token literal-property property">clientHeight</span><span class="token operator">:</span> document<span class="token punctuation">.</span>documentElement<span class="token punctuation">.</span>clientHeight<span class="token punctuation">,</span>
- <span class="token literal-property property">canvasList</span><span class="token operator">:</span> <span class="token punctuation">[</span>
- <span class="token punctuation">{</span>
- <span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'上联'</span><span class="token punctuation">,</span>
- <span class="token literal-property property">className</span><span class="token operator">:</span> <span class="token string">'canvas-a'</span><span class="token punctuation">,</span>
- <span class="token literal-property property">bgImage</span><span class="token operator">:</span> dl<span class="token punctuation">,</span>
- <span class="token literal-property property">width</span><span class="token operator">:</span> <span class="token number">600</span> <span class="token operator">*</span> <span class="token constant">PROPORTION</span><span class="token punctuation">,</span>
- <span class="token literal-property property">height</span><span class="token operator">:</span> <span class="token number">3640</span> <span class="token operator">*</span> <span class="token constant">PROPORTION</span><span class="token punctuation">,</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token punctuation">{</span>
- <span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'下联'</span><span class="token punctuation">,</span>
- <span class="token literal-property property">className</span><span class="token operator">:</span> <span class="token string">'canvas-b'</span><span class="token punctuation">,</span>
- <span class="token literal-property property">bgImage</span><span class="token operator">:</span> dl<span class="token punctuation">,</span>
- <span class="token literal-property property">width</span><span class="token operator">:</span> <span class="token number">600</span> <span class="token operator">*</span> <span class="token constant">PROPORTION</span><span class="token punctuation">,</span>
- <span class="token literal-property property">height</span><span class="token operator">:</span> <span class="token number">3640</span> <span class="token operator">*</span> <span class="token constant">PROPORTION</span><span class="token punctuation">,</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token punctuation">{</span>
- <span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'横批'</span><span class="token punctuation">,</span>
- <span class="token literal-property property">className</span><span class="token operator">:</span> <span class="token string">'canvas-c'</span><span class="token punctuation">,</span>
- <span class="token literal-property property">bgImage</span><span class="token operator">:</span> hp<span class="token punctuation">,</span>
- <span class="token literal-property property">width</span><span class="token operator">:</span> <span class="token number">2000</span> <span class="token operator">*</span> <span class="token constant">PROPORTION</span><span class="token punctuation">,</span>
- <span class="token literal-property property">height</span><span class="token operator">:</span> <span class="token number">600</span> <span class="token operator">*</span> <span class="token constant">PROPORTION</span><span class="token punctuation">,</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token punctuation">{</span>
- <span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">'福字'</span><span class="token punctuation">,</span>
- <span class="token literal-property property">className</span><span class="token operator">:</span> <span class="token string">'canvas-d'</span><span class="token punctuation">,</span>
- <span class="token literal-property property">bgImage</span><span class="token operator">:</span> fz<span class="token punctuation">,</span>
- <span class="token literal-property property">width</span><span class="token operator">:</span> <span class="token number">366</span><span class="token punctuation">,</span>
- <span class="token literal-property property">height</span><span class="token operator">:</span> <span class="token number">366</span><span class="token punctuation">,</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">]</span><span class="token punctuation">,</span>
- <span class="token literal-property property">colorList</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">'#000000'</span><span class="token punctuation">,</span> <span class="token string">'#ffd800'</span><span class="token punctuation">,</span> <span class="token string">'#e8bd48'</span><span class="token punctuation">,</span> <span class="token string">'#ddc08c'</span><span class="token punctuation">,</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
- <span class="token literal-property property">curColorIndex</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>
- <span class="token literal-property property">colorListVisibility</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span> <span class="token comment">// 画布颜色选择列表可见性</span>
- <span class="token literal-property property">isShowTip</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span> <span class="token comment">// 是否显示底部提示语</span>
- <span class="token literal-property property">duilian</span><span class="token operator">:</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token comment">// 当前对联文本对象</span>
- <span class="token literal-property property">isRotate</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span> <span class="token comment">// 刷新icon旋转</span>
- <span class="token literal-property property">bgList</span><span class="token operator">:</span> <span class="token punctuation">[</span>
- <span class="token string">'https://cdn.jsdelivr.net/gh/xugaoyi/image_store@master/1.4j8qpdnq80i0.jpeg'</span><span class="token punctuation">,</span>
- <span class="token string">'https://cdn.jsdelivr.net/gh/xugaoyi/image_store@master/4.4460an8ag5o0.jpeg'</span><span class="token punctuation">,</span>
- <span class="token string">'https://cdn.jsdelivr.net/gh/xugaoyi/image_store@master/5.3axtl4xpvy00.jpeg'</span><span class="token punctuation">,</span>
- <span class="token string">'https://cdn.jsdelivr.net/gh/xugaoyi/image_store@master/6.2lnbphdqjaq0.jpeg'</span><span class="token punctuation">,</span>
- <span class="token punctuation">]</span><span class="token punctuation">,</span>
- <span class="token literal-property property">isReadImages</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span> <span class="token comment">// 延迟加载图片用</span>
- <span class="token literal-property property">isShowShareBtn</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span> <span class="token comment">// 是否显示分享按钮</span>
- <span class="token literal-property property">isShowShareTip</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span> <span class="token comment">// 是否显示分享提示语</span>
- <span class="token literal-property property">isPlay</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span> <span class="token comment">// 是否在播放</span>
- <span class="token comment">// 模式2</span>
- <span class="token literal-property property">canvasTop</span><span class="token operator">:</span> <span class="token keyword">null</span><span class="token punctuation">,</span> <span class="token comment">// 横批</span>
- <span class="token literal-property property">canvasLeft</span><span class="token operator">:</span> <span class="token keyword">null</span><span class="token punctuation">,</span> <span class="token comment">// 上联</span>
- <span class="token literal-property property">canvasRight</span><span class="token operator">:</span> <span class="token keyword">null</span><span class="token punctuation">,</span> <span class="token comment">// 下联</span>
- <span class="token literal-property property">imgObj1</span><span class="token operator">:</span> <span class="token keyword">null</span><span class="token punctuation">,</span> <span class="token comment">// 横批图片对象</span>
- <span class="token literal-property property">imgObj2</span><span class="token operator">:</span> <span class="token keyword">null</span><span class="token punctuation">,</span> <span class="token comment">// 上下联图片对象</span>
- <span class="token literal-property property">scale</span><span class="token operator">:</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>window<span class="token punctuation">.</span>devicePixelRatio <span class="token operator">||</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token comment">// 用于增加画布清晰度</span>
- <span class="token literal-property property">showPickBox</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span> <span class="token comment">// 挑选对联的弹框</span>
- <span class="token literal-property property">showInputBox</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span> <span class="token comment">// 输入对联的弹框</span>
- <span class="token literal-property property">shanglian</span><span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span> <span class="token comment">// 输入的上联</span>
- <span class="token literal-property property">xialian</span><span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span> <span class="token comment">// 输入的下联</span>
- <span class="token literal-property property">hengpi</span><span class="token operator">:</span> <span class="token string">''</span><span class="token punctuation">,</span> <span class="token comment">// 输入的横批</span>
- <span class="token punctuation">}</span><span class="token punctuation">;</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token literal-property property">computed</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token comment">// 模式1-当前画布实例</span>
- <span class="token function">curCanvasInstantiate</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">return</span> <span class="token keyword">this</span><span class="token punctuation">[</span><span class="token constant">INSTANTIATE_NAME</span> <span class="token operator">+</span> <span class="token keyword">this</span><span class="token punctuation">.</span>curCanvasIndex<span class="token punctuation">]</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">created</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token comment">// 微信浏览器显示分享按钮</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>isShowShareBtn <span class="token operator">=</span> <span class="token function">isWX</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">mounted</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token function">isMobile</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token function">Notify</span><span class="token punctuation">(</span><span class="token punctuation">{</span> <span class="token literal-property property">type</span><span class="token operator">:</span> <span class="token string">'warning'</span><span class="token punctuation">,</span> <span class="token literal-property property">message</span><span class="token operator">:</span> <span class="token string">'请用移动端打开获得最佳体验'</span><span class="token punctuation">,</span> <span class="token literal-property property">duration</span><span class="token operator">:</span> <span class="token number">6000</span><span class="token punctuation">,</span> <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token punctuation">}</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">initMode1</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token comment">// 初始化对联提示</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">handleRefresh</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">initMode2</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token comment">// 按钮添加激活时发光效果class</span>
- <span class="token keyword">const</span> btnEl <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">querySelectorAll</span><span class="token punctuation">(</span><span class="token string">'.btn,.btn-block'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
- btnEl<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">item</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- item<span class="token punctuation">.</span><span class="token function">addEventListener</span><span class="token punctuation">(</span><span class="token string">'touchstart'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- item<span class="token punctuation">.</span>classList<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token string">'btn-active'</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- item<span class="token punctuation">.</span><span class="token function">addEventListener</span><span class="token punctuation">(</span><span class="token string">'touchend'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token function">setTimeout</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- item<span class="token punctuation">.</span>classList<span class="token punctuation">.</span><span class="token function">remove</span><span class="token punctuation">(</span><span class="token string">'btn-active'</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token comment">// 延迟加载贴图背景</span>
- <span class="token function">setTimeout</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>isReadImages <span class="token operator">=</span> <span class="token boolean">true</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token number">1000</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token literal-property property">watch</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token comment">// 切换画笔颜色</span>
- <span class="token function">curColorIndex</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>curCanvasInstantiate<span class="token punctuation">.</span>color <span class="token operator">=</span> <span class="token keyword">this</span><span class="token punctuation">.</span>colorList<span class="token punctuation">[</span><span class="token keyword">this</span><span class="token punctuation">.</span>curColorIndex<span class="token punctuation">]</span>
- <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>mode <span class="token operator">===</span> <span class="token number">2</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">refreshDuilian</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 切换画布时应用当前画笔颜色和大小</span>
- <span class="token function">curCanvasIndex</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>curCanvasInstantiate<span class="token punctuation">.</span>color <span class="token operator">=</span> <span class="token keyword">this</span><span class="token punctuation">.</span>colorList<span class="token punctuation">[</span><span class="token keyword">this</span><span class="token punctuation">.</span>curColorIndex<span class="token punctuation">]</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">handleChangeSize</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- window<span class="token punctuation">.</span><span class="token function">scrollTo</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token literal-property property">methods</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token function">initMode1</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">const</span> <span class="token punctuation">{</span> colorList<span class="token punctuation">,</span> curColorIndex <span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token keyword">this</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasList<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">item<span class="token punctuation">,</span> index</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token keyword">const</span> options <span class="token operator">=</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">width</span><span class="token operator">:</span> item<span class="token punctuation">.</span>width<span class="token punctuation">,</span>
- <span class="token literal-property property">height</span><span class="token operator">:</span> item<span class="token punctuation">.</span>height<span class="token punctuation">,</span>
- <span class="token literal-property property">minWidth</span><span class="token operator">:</span> <span class="token constant">MIN_WIDTH</span><span class="token punctuation">,</span> <span class="token comment">// 画笔最小宽度(px)</span>
- <span class="token literal-property property">maxWidth</span><span class="token operator">:</span> <span class="token constant">MAX_WIDTH</span><span class="token punctuation">,</span> <span class="token comment">// 画笔最大宽度</span>
- <span class="token literal-property property">minSpeed</span><span class="token operator">:</span> <span class="token number">1.8</span><span class="token punctuation">,</span> <span class="token comment">// 画笔达到最小宽度所需最小速度(px/ms),取值范围1.0-10.0</span>
- <span class="token literal-property property">color</span><span class="token operator">:</span> colorList<span class="token punctuation">[</span>curColorIndex<span class="token punctuation">]</span><span class="token punctuation">,</span>
- <span class="token comment">// 新增的配置</span>
- <span class="token literal-property property">bgImage</span><span class="token operator">:</span> item<span class="token punctuation">.</span>bgImage<span class="token punctuation">,</span>
- <span class="token punctuation">}</span><span class="token punctuation">;</span>
- <span class="token keyword">this</span><span class="token punctuation">[</span><span class="token constant">INSTANTIATE_NAME</span> <span class="token operator">+</span> index<span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">SmoothSignature</span><span class="token punctuation">(</span>document<span class="token punctuation">.</span><span class="token function">querySelector</span><span class="token punctuation">(</span><span class="token string">'.'</span> <span class="token operator">+</span> item<span class="token punctuation">.</span>className<span class="token punctuation">)</span><span class="token punctuation">,</span> options<span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">initMode2</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasTop <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span><span class="token string">'canvas-top'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getContext</span><span class="token punctuation">(</span><span class="token string">'2d'</span><span class="token punctuation">)</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasLeft <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span><span class="token string">'canvas-left'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getContext</span><span class="token punctuation">(</span><span class="token string">'2d'</span><span class="token punctuation">)</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasRight <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span><span class="token string">'canvas-right'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getContext</span><span class="token punctuation">(</span><span class="token string">'2d'</span><span class="token punctuation">)</span>
- <span class="token comment">// 设字体样式</span>
- <span class="token keyword">const</span> font <span class="token operator">=</span> <span class="token string">"36px xs, cursive"</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasTop<span class="token punctuation">.</span>font <span class="token operator">=</span> font
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasLeft<span class="token punctuation">.</span>font <span class="token operator">=</span> font
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasRight<span class="token punctuation">.</span>font <span class="token operator">=</span> font
- <span class="token comment">// 增强清晰度</span>
- <span class="token keyword">const</span> <span class="token punctuation">{</span> scale <span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token keyword">this</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasTop<span class="token punctuation">.</span><span class="token function">scale</span><span class="token punctuation">(</span>scale<span class="token punctuation">,</span> scale<span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasLeft<span class="token punctuation">.</span><span class="token function">scale</span><span class="token punctuation">(</span>scale<span class="token punctuation">,</span> scale<span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasRight<span class="token punctuation">.</span><span class="token function">scale</span><span class="token punctuation">(</span>scale<span class="token punctuation">,</span> scale<span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token comment">// 设背景图</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>imgObj1 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Image</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>imgObj2 <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Image</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>imgObj1<span class="token punctuation">.</span>src <span class="token operator">=</span> hp
- <span class="token keyword">this</span><span class="token punctuation">.</span>imgObj2<span class="token punctuation">.</span>src <span class="token operator">=</span> dl
- <span class="token keyword">this</span><span class="token punctuation">.</span>imgObj1<span class="token punctuation">.</span><span class="token function-variable function">onload</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token comment">// 贴背景</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasTop<span class="token punctuation">.</span><span class="token function">drawImage</span><span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>imgObj1<span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">200</span><span class="token punctuation">,</span> <span class="token number">60</span><span class="token punctuation">)</span>
- <span class="token comment">// 字体加载完成后</span>
- document<span class="token punctuation">.</span>fonts<span class="token punctuation">.</span>ready<span class="token punctuation">.</span><span class="token function">then</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">handleTopFillText</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token punctuation">}</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>imgObj2<span class="token punctuation">.</span><span class="token function-variable function">onload</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token comment">// 贴背景</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasLeft<span class="token punctuation">.</span><span class="token function">drawImage</span><span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>imgObj2<span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">60</span><span class="token punctuation">,</span> <span class="token number">364</span><span class="token punctuation">)</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasRight<span class="token punctuation">.</span><span class="token function">drawImage</span><span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>imgObj2<span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">60</span><span class="token punctuation">,</span> <span class="token number">364</span><span class="token punctuation">)</span>
- <span class="token comment">// 字体加载完成后</span>
- document<span class="token punctuation">.</span>fonts<span class="token punctuation">.</span>ready<span class="token punctuation">.</span><span class="token function">then</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">handleLRFillText</span><span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>canvasLeft<span class="token punctuation">,</span> <span class="token keyword">this</span><span class="token punctuation">.</span>duilian<span class="token punctuation">.</span>shang<span class="token punctuation">)</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">handleLRFillText</span><span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>canvasRight<span class="token punctuation">,</span> <span class="token keyword">this</span><span class="token punctuation">.</span>duilian<span class="token punctuation">.</span>xia<span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 模式2-刷新对联</span>
- <span class="token function">refreshDuilian</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasTop<span class="token punctuation">.</span><span class="token function">drawImage</span><span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>imgObj1<span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">200</span><span class="token punctuation">,</span> <span class="token number">60</span><span class="token punctuation">)</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasLeft<span class="token punctuation">.</span><span class="token function">drawImage</span><span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>imgObj2<span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">60</span><span class="token punctuation">,</span> <span class="token number">364</span><span class="token punctuation">)</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasRight<span class="token punctuation">.</span><span class="token function">drawImage</span><span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>imgObj2<span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">60</span><span class="token punctuation">,</span> <span class="token number">364</span><span class="token punctuation">)</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">handleTopFillText</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">handleLRFillText</span><span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>canvasLeft<span class="token punctuation">,</span> <span class="token keyword">this</span><span class="token punctuation">.</span>duilian<span class="token punctuation">.</span>shang<span class="token punctuation">)</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">handleLRFillText</span><span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>canvasRight<span class="token punctuation">,</span> <span class="token keyword">this</span><span class="token punctuation">.</span>duilian<span class="token punctuation">.</span>xia<span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 模式2-贴横批</span>
- <span class="token function">handleTopFillText</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token comment">// 贴文本</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasTop<span class="token punctuation">.</span>fillStyle <span class="token operator">=</span> <span class="token keyword">this</span><span class="token punctuation">.</span>colorList<span class="token punctuation">[</span><span class="token keyword">this</span><span class="token punctuation">.</span>curColorIndex<span class="token punctuation">]</span>
- <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>duilian<span class="token punctuation">.</span>heng<span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>duilian<span class="token punctuation">.</span>heng<span class="token punctuation">.</span><span class="token function">split</span><span class="token punctuation">(</span><span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">item<span class="token punctuation">,</span> index</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token keyword">const</span> left <span class="token operator">=</span> <span class="token number">42</span> <span class="token operator">*</span> <span class="token punctuation">(</span>index <span class="token operator">+</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token operator">-</span> <span class="token number">22</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasTop<span class="token punctuation">.</span><span class="token function">fillText</span><span class="token punctuation">(</span>item<span class="token punctuation">,</span> left<span class="token punctuation">,</span> <span class="token number">40</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 模式2-贴上下联</span>
- <span class="token function">handleLRFillText</span><span class="token punctuation">(</span><span class="token parameter">ctx<span class="token punctuation">,</span> text</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- ctx<span class="token punctuation">.</span>fillStyle <span class="token operator">=</span> <span class="token keyword">this</span><span class="token punctuation">.</span>colorList<span class="token punctuation">[</span><span class="token keyword">this</span><span class="token punctuation">.</span>curColorIndex<span class="token punctuation">]</span>
- <span class="token keyword">if</span> <span class="token punctuation">(</span>text<span class="token punctuation">)</span> <span class="token punctuation">{</span>
- text<span class="token punctuation">.</span><span class="token function">split</span><span class="token punctuation">(</span><span class="token string">''</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">item<span class="token punctuation">,</span> index</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token keyword">const</span> top <span class="token operator">=</span> <span class="token number">50</span> <span class="token operator">*</span> <span class="token punctuation">(</span>index <span class="token operator">+</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token operator">-</span> <span class="token number">8</span>
- ctx<span class="token punctuation">.</span><span class="token function">fillText</span><span class="token punctuation">(</span>item<span class="token punctuation">,</span> <span class="token number">13</span><span class="token punctuation">,</span> top<span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 切换模式</span>
- <span class="token function">toggleMode</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>mode <span class="token operator">===</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>mode <span class="token operator">=</span> <span class="token number">2</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">refreshDuilian</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>mode <span class="token operator">=</span> <span class="token number">1</span>
- <span class="token punctuation">}</span>
- localStorage<span class="token punctuation">.</span><span class="token function">setItem</span><span class="token punctuation">(</span><span class="token string">'mode'</span><span class="token punctuation">,</span> <span class="token keyword">this</span><span class="token punctuation">.</span>mode<span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 打开调色板</span>
- <span class="token function">togglePalette</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>colorListVisibility <span class="token operator">=</span> <span class="token operator">!</span><span class="token keyword">this</span><span class="token punctuation">.</span>colorListVisibility
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 关闭调色板</span>
- <span class="token function">handleTouchstart</span><span class="token punctuation">(</span><span class="token parameter">e</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token comment">// 不是点击选择颜色时</span>
- <span class="token keyword">if</span> <span class="token punctuation">(</span>e<span class="token punctuation">.</span>path<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token operator">?.</span>classList<span class="token operator">?.</span>value <span class="token operator">!==</span> <span class="token string">'colorList'</span> <span class="token operator">&&</span> e<span class="token punctuation">.</span>target<span class="token punctuation">.</span>classList<span class="token operator">?.</span>value <span class="token operator">!==</span> <span class="token string">'cur-color'</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>colorListVisibility <span class="token operator">=</span> <span class="token boolean">false</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 选择颜色</span>
- <span class="token function">selectColor</span><span class="token punctuation">(</span><span class="token parameter">index</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>curColorIndex <span class="token operator">=</span> index
- <span class="token keyword">this</span><span class="token punctuation">.</span>colorListVisibility <span class="token operator">=</span> <span class="token boolean">false</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 切换画布</span>
- <span class="token function">changeCanvas</span><span class="token punctuation">(</span><span class="token parameter">index</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>curCanvasIndex <span class="token operator">=</span> index
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 清空画布</span>
- <span class="token function">handleClear</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>curCanvasInstantiate<span class="token punctuation">.</span><span class="token function">clear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 撤销笔画</span>
- <span class="token function">handleUndo</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>curCanvasInstantiate<span class="token punctuation">.</span><span class="token function">undo</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 预览</span>
- <span class="token function">handlePreview</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">showTopTip</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>isShowTip <span class="token operator">=</span> <span class="token boolean">true</span>
- <span class="token keyword">const</span> _this <span class="token operator">=</span> <span class="token keyword">this</span>
- <span class="token function">ImagePreview</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
- <span class="token literal-property property">images</span><span class="token operator">:</span> <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">getImageList</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
- <span class="token literal-property property">closeable</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">startPosition</span><span class="token operator">:</span> <span class="token keyword">this</span><span class="token punctuation">.</span>curCanvasIndex<span class="token punctuation">,</span>
- <span class="token function">onClose</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- _this<span class="token punctuation">.</span>isShowTip <span class="token operator">=</span> <span class="token boolean">false</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 打开海报预览</span>
- <span class="token function">openPosters</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token comment">// 创建画布</span>
- <span class="token keyword">const</span> canvas <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">createElement</span><span class="token punctuation">(</span><span class="token string">'canvas'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
- canvas<span class="token punctuation">.</span>width <span class="token operator">=</span> <span class="token constant">BG_WIDTH</span>
- canvas<span class="token punctuation">.</span>height <span class="token operator">=</span> <span class="token constant">BG_HEIGHT</span>
- <span class="token keyword">const</span> ctx <span class="token operator">=</span> canvas<span class="token punctuation">.</span><span class="token function">getContext</span><span class="token punctuation">(</span><span class="token string">'2d'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token keyword">const</span> resultImageList <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
- <span class="token comment">// 是否隐藏福字</span>
- <span class="token keyword">const</span> isHideFu <span class="token operator">=</span> <span class="token keyword">this</span><span class="token punctuation">[</span><span class="token constant">INSTANTIATE_NAME</span> <span class="token operator">+</span> <span class="token number">3</span><span class="token punctuation">]</span><span class="token punctuation">.</span><span class="token function">isEmpty</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>bgList<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">item<span class="token punctuation">,</span> index</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token comment">// 贴背景图</span>
- ctx<span class="token punctuation">.</span><span class="token function">drawImage</span><span class="token punctuation">(</span>document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span><span class="token string">'bg-img-'</span> <span class="token operator">+</span> index<span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token constant">BG_WIDTH</span><span class="token punctuation">,</span> <span class="token constant">BG_HEIGHT</span><span class="token punctuation">)</span>
- <span class="token comment">// 贴对联</span>
- <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>mode <span class="token operator">===</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasList<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">item<span class="token punctuation">,</span> index</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token keyword">if</span> <span class="token punctuation">(</span>index <span class="token operator">===</span> <span class="token number">3</span> <span class="token operator">&&</span> isHideFu<span class="token punctuation">)</span> <span class="token keyword">return</span><span class="token punctuation">;</span>
- <span class="token keyword">const</span> dlCanvas <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">querySelector</span><span class="token punctuation">(</span><span class="token string">'.'</span> <span class="token operator">+</span> item<span class="token punctuation">.</span>className<span class="token punctuation">)</span>
- <span class="token keyword">const</span> <span class="token punctuation">{</span> left<span class="token punctuation">,</span> top<span class="token punctuation">,</span> width<span class="token punctuation">,</span> height <span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token constant">POSITION</span><span class="token punctuation">[</span>index<span class="token punctuation">]</span>
- ctx<span class="token punctuation">.</span><span class="token function">drawImage</span><span class="token punctuation">(</span>dlCanvas<span class="token punctuation">,</span> left<span class="token punctuation">,</span> top<span class="token punctuation">,</span> width<span class="token punctuation">,</span> height<span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
- <span class="token punctuation">[</span><span class="token string">'canvas-left'</span><span class="token punctuation">,</span> <span class="token string">'canvas-right'</span><span class="token punctuation">,</span> <span class="token string">'canvas-top'</span><span class="token punctuation">]</span><span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">item<span class="token punctuation">,</span> index</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token keyword">const</span> dlCanvas <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span>item<span class="token punctuation">)</span>
- <span class="token keyword">const</span> <span class="token punctuation">{</span> left<span class="token punctuation">,</span> top<span class="token punctuation">,</span> width<span class="token punctuation">,</span> height <span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token constant">POSITION</span><span class="token punctuation">[</span>index<span class="token punctuation">]</span>
- ctx<span class="token punctuation">.</span><span class="token function">drawImage</span><span class="token punctuation">(</span>dlCanvas<span class="token punctuation">,</span> left<span class="token punctuation">,</span> top<span class="token punctuation">,</span> width<span class="token punctuation">,</span> height<span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span>
- <span class="token comment">// 贴二维码</span>
- ctx<span class="token punctuation">.</span><span class="token function">drawImage</span><span class="token punctuation">(</span>document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span><span class="token string">"qrcode"</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">40</span><span class="token punctuation">,</span> <span class="token number">1280</span><span class="token punctuation">,</span> <span class="token number">580</span><span class="token punctuation">,</span> <span class="token number">136</span><span class="token punctuation">)</span>
- <span class="token comment">// 贴文本</span>
- ctx<span class="token punctuation">.</span>font <span class="token operator">=</span> <span class="token string">"18px sans-serif"</span>
- ctx<span class="token punctuation">.</span>fillStyle <span class="token operator">=</span> <span class="token string">"#666666"</span>
- ctx<span class="token punctuation">.</span><span class="token function">fillText</span><span class="token punctuation">(</span><span class="token string">'©公众号「有趣研究社」'</span><span class="token punctuation">,</span> <span class="token number">550</span><span class="token punctuation">,</span> <span class="token number">1420</span><span class="token punctuation">)</span>
- <span class="token comment">// 导出图片</span>
- resultImageList<span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">(</span>canvas<span class="token punctuation">.</span><span class="token function">toDataURL</span><span class="token punctuation">(</span><span class="token string">'image/jpeg'</span><span class="token punctuation">,</span> <span class="token number">0.8</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token comment">// 打开图片预览</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>isShowTip <span class="token operator">=</span> <span class="token boolean">true</span>
- <span class="token keyword">const</span> _this <span class="token operator">=</span> <span class="token keyword">this</span>
- <span class="token function">ImagePreview</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
- <span class="token literal-property property">images</span><span class="token operator">:</span> resultImageList<span class="token punctuation">,</span>
- <span class="token literal-property property">closeable</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token function">onClose</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- _this<span class="token punctuation">.</span>isShowTip <span class="token operator">=</span> <span class="token boolean">false</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">showTopTip</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 弹出顶部提示语</span>
- <span class="token function">showTopTip</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span>sessionStorage<span class="token punctuation">.</span><span class="token function">getItem</span><span class="token punctuation">(</span><span class="token string">'showTip'</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- sessionStorage<span class="token punctuation">.</span><span class="token function">setItem</span><span class="token punctuation">(</span><span class="token string">'showTip'</span><span class="token punctuation">,</span> <span class="token string">'true'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token function">Notify</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
- <span class="token literal-property property">message</span><span class="token operator">:</span> <span class="token string">'长按图片可保存到本地'</span><span class="token punctuation">,</span>
- <span class="token literal-property property">color</span><span class="token operator">:</span> <span class="token string">'#c33825'</span><span class="token punctuation">,</span>
- <span class="token literal-property property">background</span><span class="token operator">:</span> <span class="token string">'#eed3ae'</span><span class="token punctuation">,</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 获取对联图片列表</span>
- <span class="token function">getImageList</span><span class="token punctuation">(</span>type <span class="token operator">=</span> <span class="token string">'image/png'</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">const</span> imageList <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>canvasList<span class="token punctuation">.</span><span class="token function">forEach</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">item<span class="token punctuation">,</span> index</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token keyword">if</span> <span class="token punctuation">(</span>index <span class="token operator">===</span> <span class="token number">3</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token comment">// `福`字必须是png格式</span>
- type <span class="token operator">=</span> <span class="token string">'image/png'</span>
- <span class="token punctuation">}</span>
- imageList<span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">[</span><span class="token constant">INSTANTIATE_NAME</span> <span class="token operator">+</span> index<span class="token punctuation">]</span><span class="token punctuation">.</span><span class="token function">toDataURL</span><span class="token punctuation">(</span>type<span class="token punctuation">,</span> <span class="token number">0.8</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">return</span> imageList
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 进度改变时</span>
- <span class="token function">changeProgress</span><span class="token punctuation">(</span><span class="token parameter">progress</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>progress <span class="token operator">=</span> progress
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">handleChangeSize</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 调整画笔大小</span>
- <span class="token function">handleChangeSize</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">const</span> <span class="token punctuation">{</span> progress <span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token keyword">this</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>curCanvasInstantiate<span class="token punctuation">.</span>minWidth <span class="token operator">=</span> <span class="token constant">MIN_WIDTH</span> <span class="token operator">*</span> progress <span class="token operator">/</span> <span class="token number">100</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>curCanvasInstantiate<span class="token punctuation">.</span>maxWidth <span class="token operator">=</span> <span class="token constant">MAX_WIDTH</span> <span class="token operator">*</span> progress <span class="token operator">/</span> <span class="token number">100</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 刷新对联</span>
- <span class="token function">handleRefresh</span><span class="token punctuation">(</span><span class="token parameter">rotate</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>duilian <span class="token operator">=</span> duilianList<span class="token punctuation">[</span>Math<span class="token punctuation">.</span><span class="token function">floor</span><span class="token punctuation">(</span>Math<span class="token punctuation">.</span><span class="token function">random</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">*</span> duilianList<span class="token punctuation">.</span>length<span class="token punctuation">)</span><span class="token punctuation">]</span>
- <span class="token keyword">if</span> <span class="token punctuation">(</span>rotate<span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>mode <span class="token operator">===</span> <span class="token number">2</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">refreshDuilian</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span>
- <span class="token comment">// 使icon旋转</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>isRotate <span class="token operator">=</span> <span class="token boolean">true</span>
- <span class="token function">setTimeout</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>isRotate <span class="token operator">=</span> <span class="token boolean">false</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token number">300</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 播放背景音乐</span>
- <span class="token function">handlePlay</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">const</span> <span class="token punctuation">{</span> bgm <span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token keyword">this</span><span class="token punctuation">.</span>$refs
- <span class="token keyword">if</span> <span class="token punctuation">(</span>bgm<span class="token punctuation">.</span>paused<span class="token punctuation">)</span> <span class="token punctuation">{</span>
- bgm<span class="token punctuation">.</span><span class="token function">play</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>isPlay <span class="token operator">=</span> <span class="token boolean">true</span>
- <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
- bgm<span class="token punctuation">.</span><span class="token function">pause</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>isPlay <span class="token operator">=</span> <span class="token boolean">false</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 完成输入对联</span>
- <span class="token function">handleSubmitInput</span><span class="token punctuation">(</span><span class="token parameter">values</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>duilian <span class="token operator">=</span> values
- <span class="token keyword">this</span><span class="token punctuation">.</span>showInputBox <span class="token operator">=</span> <span class="token boolean">false</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">refreshDuilian</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 完成挑选对联</span>
- <span class="token function">handlePickDuilian</span><span class="token punctuation">(</span><span class="token parameter">item</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>duilian <span class="token operator">=</span> item
- <span class="token keyword">this</span><span class="token punctuation">.</span>showPickBox <span class="token operator">=</span> <span class="token boolean">false</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">refreshDuilian</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token punctuation">}</span><span class="token punctuation">;</span>
- <span class="token operator"><</span><span class="token operator">/</span>script<span class="token operator">></span>
- </code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br><span class="line-number">22</span><br><span class="line-number">23</span><br><span class="line-number">24</span><br><span class="line-number">25</span><br><span class="line-number">26</span><br><span class="line-number">27</span><br><span class="line-number">28</span><br><span class="line-number">29</span><br><span class="line-number">30</span><br><span class="line-number">31</span><br><span class="line-number">32</span><br><span class="line-number">33</span><br><span class="line-number">34</span><br><span class="line-number">35</span><br><span class="line-number">36</span><br><span class="line-number">37</span><br><span class="line-number">38</span><br><span class="line-number">39</span><br><span class="line-number">40</span><br><span class="line-number">41</span><br><span class="line-number">42</span><br><span class="line-number">43</span><br><span class="line-number">44</span><br><span class="line-number">45</span><br><span class="line-number">46</span><br><span class="line-number">47</span><br><span class="line-number">48</span><br><span class="line-number">49</span><br><span class="line-number">50</span><br><span class="line-number">51</span><br><span class="line-number">52</span><br><span class="line-number">53</span><br><span class="line-number">54</span><br><span class="line-number">55</span><br><span class="line-number">56</span><br><span class="line-number">57</span><br><span class="line-number">58</span><br><span class="line-number">59</span><br><span class="line-number">60</span><br><span class="line-number">61</span><br><span class="line-number">62</span><br><span class="line-number">63</span><br><span class="line-number">64</span><br><span class="line-number">65</span><br><span class="line-number">66</span><br><span class="line-number">67</span><br><span class="line-number">68</span><br><span class="line-number">69</span><br><span class="line-number">70</span><br><span class="line-number">71</span><br><span class="line-number">72</span><br><span class="line-number">73</span><br><span class="line-number">74</span><br><span class="line-number">75</span><br><span class="line-number">76</span><br><span class="line-number">77</span><br><span class="line-number">78</span><br><span class="line-number">79</span><br><span class="line-number">80</span><br><span class="line-number">81</span><br><span class="line-number">82</span><br><span class="line-number">83</span><br><span class="line-number">84</span><br><span class="line-number">85</span><br><span class="line-number">86</span><br><span class="line-number">87</span><br><span class="line-number">88</span><br><span class="line-number">89</span><br><span class="line-number">90</span><br><span class="line-number">91</span><br><span class="line-number">92</span><br><span class="line-number">93</span><br><span class="line-number">94</span><br><span class="line-number">95</span><br><span class="line-number">96</span><br><span class="line-number">97</span><br><span class="line-number">98</span><br><span class="line-number">99</span><br><span class="line-number">100</span><br><span class="line-number">101</span><br><span class="line-number">102</span><br><span class="line-number">103</span><br><span class="line-number">104</span><br><span class="line-number">105</span><br><span class="line-number">106</span><br><span class="line-number">107</span><br><span class="line-number">108</span><br><span class="line-number">109</span><br><span class="line-number">110</span><br><span class="line-number">111</span><br><span class="line-number">112</span><br><span class="line-number">113</span><br><span class="line-number">114</span><br><span class="line-number">115</span><br><span class="line-number">116</span><br><span class="line-number">117</span><br><span class="line-number">118</span><br><span class="line-number">119</span><br><span class="line-number">120</span><br><span class="line-number">121</span><br><span class="line-number">122</span><br><span class="line-number">123</span><br><span class="line-number">124</span><br><span class="line-number">125</span><br><span class="line-number">126</span><br><span class="line-number">127</span><br><span class="line-number">128</span><br><span class="line-number">129</span><br><span class="line-number">130</span><br><span class="line-number">131</span><br><span class="line-number">132</span><br><span class="line-number">133</span><br><span class="line-number">134</span><br><span class="line-number">135</span><br><span class="line-number">136</span><br><span class="line-number">137</span><br><span class="line-number">138</span><br><span class="line-number">139</span><br><span class="line-number">140</span><br><span class="line-number">141</span><br><span class="line-number">142</span><br><span class="line-number">143</span><br><span class="line-number">144</span><br><span class="line-number">145</span><br><span class="line-number">146</span><br><span class="line-number">147</span><br><span class="line-number">148</span><br><span class="line-number">149</span><br><span class="line-number">150</span><br><span class="line-number">151</span><br><span class="line-number">152</span><br><span class="line-number">153</span><br><span class="line-number">154</span><br><span class="line-number">155</span><br><span class="line-number">156</span><br><span class="line-number">157</span><br><span class="line-number">158</span><br><span class="line-number">159</span><br><span class="line-number">160</span><br><span class="line-number">161</span><br><span class="line-number">162</span><br><span class="line-number">163</span><br><span class="line-number">164</span><br><span class="line-number">165</span><br><span class="line-number">166</span><br><span class="line-number">167</span><br><span class="line-number">168</span><br><span class="line-number">169</span><br><span class="line-number">170</span><br><span class="line-number">171</span><br><span class="line-number">172</span><br><span class="line-number">173</span><br><span class="line-number">174</span><br><span class="line-number">175</span><br><span class="line-number">176</span><br><span class="line-number">177</span><br><span class="line-number">178</span><br><span class="line-number">179</span><br><span class="line-number">180</span><br><span class="line-number">181</span><br><span class="line-number">182</span><br><span class="line-number">183</span><br><span class="line-number">184</span><br><span class="line-number">185</span><br><span class="line-number">186</span><br><span class="line-number">187</span><br><span class="line-number">188</span><br><span class="line-number">189</span><br><span class="line-number">190</span><br><span class="line-number">191</span><br><span class="line-number">192</span><br><span class="line-number">193</span><br><span class="line-number">194</span><br><span class="line-number">195</span><br><span class="line-number">196</span><br><span class="line-number">197</span><br><span class="line-number">198</span><br><span class="line-number">199</span><br><span class="line-number">200</span><br><span class="line-number">201</span><br><span class="line-number">202</span><br><span class="line-number">203</span><br><span class="line-number">204</span><br><span class="line-number">205</span><br><span class="line-number">206</span><br><span class="line-number">207</span><br><span class="line-number">208</span><br><span class="line-number">209</span><br><span class="line-number">210</span><br><span class="line-number">211</span><br><span class="line-number">212</span><br><span class="line-number">213</span><br><span class="line-number">214</span><br><span class="line-number">215</span><br><span class="line-number">216</span><br><span class="line-number">217</span><br><span class="line-number">218</span><br><span class="line-number">219</span><br><span class="line-number">220</span><br><span class="line-number">221</span><br><span class="line-number">222</span><br><span class="line-number">223</span><br><span class="line-number">224</span><br><span class="line-number">225</span><br><span class="line-number">226</span><br><span class="line-number">227</span><br><span class="line-number">228</span><br><span class="line-number">229</span><br><span class="line-number">230</span><br><span class="line-number">231</span><br><span class="line-number">232</span><br><span class="line-number">233</span><br><span class="line-number">234</span><br><span class="line-number">235</span><br><span class="line-number">236</span><br><span class="line-number">237</span><br><span class="line-number">238</span><br><span class="line-number">239</span><br><span class="line-number">240</span><br><span class="line-number">241</span><br><span class="line-number">242</span><br><span class="line-number">243</span><br><span class="line-number">244</span><br><span class="line-number">245</span><br><span class="line-number">246</span><br><span class="line-number">247</span><br><span class="line-number">248</span><br><span class="line-number">249</span><br><span class="line-number">250</span><br><span class="line-number">251</span><br><span class="line-number">252</span><br><span class="line-number">253</span><br><span class="line-number">254</span><br><span class="line-number">255</span><br><span class="line-number">256</span><br><span class="line-number">257</span><br><span class="line-number">258</span><br><span class="line-number">259</span><br><span class="line-number">260</span><br><span class="line-number">261</span><br><span class="line-number">262</span><br><span class="line-number">263</span><br><span class="line-number">264</span><br><span class="line-number">265</span><br><span class="line-number">266</span><br><span class="line-number">267</span><br><span class="line-number">268</span><br><span class="line-number">269</span><br><span class="line-number">270</span><br><span class="line-number">271</span><br><span class="line-number">272</span><br><span class="line-number">273</span><br><span class="line-number">274</span><br><span class="line-number">275</span><br><span class="line-number">276</span><br><span class="line-number">277</span><br><span class="line-number">278</span><br><span class="line-number">279</span><br><span class="line-number">280</span><br><span class="line-number">281</span><br><span class="line-number">282</span><br><span class="line-number">283</span><br><span class="line-number">284</span><br><span class="line-number">285</span><br><span class="line-number">286</span><br><span class="line-number">287</span><br><span class="line-number">288</span><br><span class="line-number">289</span><br><span class="line-number">290</span><br><span class="line-number">291</span><br><span class="line-number">292</span><br><span class="line-number">293</span><br><span class="line-number">294</span><br><span class="line-number">295</span><br><span class="line-number">296</span><br><span class="line-number">297</span><br><span class="line-number">298</span><br><span class="line-number">299</span><br><span class="line-number">300</span><br><span class="line-number">301</span><br><span class="line-number">302</span><br><span class="line-number">303</span><br><span class="line-number">304</span><br><span class="line-number">305</span><br><span class="line-number">306</span><br><span class="line-number">307</span><br><span class="line-number">308</span><br><span class="line-number">309</span><br><span class="line-number">310</span><br><span class="line-number">311</span><br><span class="line-number">312</span><br><span class="line-number">313</span><br><span class="line-number">314</span><br><span class="line-number">315</span><br><span class="line-number">316</span><br><span class="line-number">317</span><br><span class="line-number">318</span><br><span class="line-number">319</span><br><span class="line-number">320</span><br><span class="line-number">321</span><br><span class="line-number">322</span><br><span class="line-number">323</span><br><span class="line-number">324</span><br><span class="line-number">325</span><br><span class="line-number">326</span><br><span class="line-number">327</span><br><span class="line-number">328</span><br><span class="line-number">329</span><br><span class="line-number">330</span><br><span class="line-number">331</span><br><span class="line-number">332</span><br><span class="line-number">333</span><br><span class="line-number">334</span><br><span class="line-number">335</span><br><span class="line-number">336</span><br><span class="line-number">337</span><br><span class="line-number">338</span><br><span class="line-number">339</span><br><span class="line-number">340</span><br><span class="line-number">341</span><br><span class="line-number">342</span><br><span class="line-number">343</span><br><span class="line-number">344</span><br><span class="line-number">345</span><br><span class="line-number">346</span><br><span class="line-number">347</span><br><span class="line-number">348</span><br><span class="line-number">349</span><br><span class="line-number">350</span><br><span class="line-number">351</span><br><span class="line-number">352</span><br><span class="line-number">353</span><br><span class="line-number">354</span><br><span class="line-number">355</span><br><span class="line-number">356</span><br><span class="line-number">357</span><br><span class="line-number">358</span><br><span class="line-number">359</span><br><span class="line-number">360</span><br><span class="line-number">361</span><br><span class="line-number">362</span><br><span class="line-number">363</span><br><span class="line-number">364</span><br><span class="line-number">365</span><br><span class="line-number">366</span><br><span class="line-number">367</span><br><span class="line-number">368</span><br><span class="line-number">369</span><br><span class="line-number">370</span><br><span class="line-number">371</span><br><span class="line-number">372</span><br><span class="line-number">373</span><br><span class="line-number">374</span><br><span class="line-number">375</span><br><span class="line-number">376</span><br><span class="line-number">377</span><br><span class="line-number">378</span><br><span class="line-number">379</span><br><span class="line-number">380</span><br><span class="line-number">381</span><br><span class="line-number">382</span><br><span class="line-number">383</span><br><span class="line-number">384</span><br><span class="line-number">385</span><br><span class="line-number">386</span><br><span class="line-number">387</span><br><span class="line-number">388</span><br><span class="line-number">389</span><br><span class="line-number">390</span><br><span class="line-number">391</span><br><span class="line-number">392</span><br><span class="line-number">393</span><br><span class="line-number">394</span><br><span class="line-number">395</span><br><span class="line-number">396</span><br><span class="line-number">397</span><br><span class="line-number">398</span><br><span class="line-number">399</span><br><span class="line-number">400</span><br><span class="line-number">401</span><br><span class="line-number">402</span><br><span class="line-number">403</span><br><span class="line-number">404</span><br><span class="line-number">405</span><br><span class="line-number">406</span><br><span class="line-number">407</span><br><span class="line-number">408</span><br><span class="line-number">409</span><br><span class="line-number">410</span><br><span class="line-number">411</span><br><span class="line-number">412</span><br><span class="line-number">413</span><br><span class="line-number">414</span><br><span class="line-number">415</span><br><span class="line-number">416</span><br><span class="line-number">417</span><br><span class="line-number">418</span><br><span class="line-number">419</span><br><span class="line-number">420</span><br><span class="line-number">421</span><br><span class="line-number">422</span><br><span class="line-number">423</span><br><span class="line-number">424</span><br><span class="line-number">425</span><br><span class="line-number">426</span><br><span class="line-number">427</span><br><span class="line-number">428</span><br><span class="line-number">429</span><br><span class="line-number">430</span><br><span class="line-number">431</span><br><span class="line-number">432</span><br><span class="line-number">433</span><br><span class="line-number">434</span><br><span class="line-number">435</span><br><span class="line-number">436</span><br><span class="line-number">437</span><br><span class="line-number">438</span><br><span class="line-number">439</span><br><span class="line-number">440</span><br><span class="line-number">441</span><br><span class="line-number">442</span><br><span class="line-number">443</span><br><span class="line-number">444</span><br><span class="line-number">445</span><br><span class="line-number">446</span><br><span class="line-number">447</span><br><span class="line-number">448</span><br><span class="line-number">449</span><br><span class="line-number">450</span><br><span class="line-number">451</span><br><span class="line-number">452</span><br><span class="line-number">453</span><br><span class="line-number">454</span><br><span class="line-number">455</span><br><span class="line-number">456</span><br><span class="line-number">457</span><br><span class="line-number">458</span><br><span class="line-number">459</span><br><span class="line-number">460</span><br><span class="line-number">461</span><br><span class="line-number">462</span><br><span class="line-number">463</span><br><span class="line-number">464</span><br><span class="line-number">465</span><br><span class="line-number">466</span><br><span class="line-number">467</span><br><span class="line-number">468</span><br><span class="line-number">469</span><br><span class="line-number">470</span><br><span class="line-number">471</span><br><span class="line-number">472</span><br><span class="line-number">473</span><br><span class="line-number">474</span><br><span class="line-number">475</span><br><span class="line-number">476</span><br><span class="line-number">477</span><br><span class="line-number">478</span><br><span class="line-number">479</span><br><span class="line-number">480</span><br><span class="line-number">481</span><br><span class="line-number">482</span><br><span class="line-number">483</span><br><span class="line-number">484</span><br><span class="line-number">485</span><br><span class="line-number">486</span><br><span class="line-number">487</span><br><span class="line-number">488</span><br><span class="line-number">489</span><br><span class="line-number">490</span><br><span class="line-number">491</span><br><span class="line-number">492</span><br><span class="line-number">493</span><br><span class="line-number">494</span><br><span class="line-number">495</span><br><span class="line-number">496</span><br><span class="line-number">497</span><br><span class="line-number">498</span><br><span class="line-number">499</span><br><span class="line-number">500</span><br><span class="line-number">501</span><br><span class="line-number">502</span><br><span class="line-number">503</span><br><span class="line-number">504</span><br><span class="line-number">505</span><br><span class="line-number">506</span><br><span class="line-number">507</span><br><span class="line-number">508</span><br><span class="line-number">509</span><br><span class="line-number">510</span><br><span class="line-number">511</span><br><span class="line-number">512</span><br><span class="line-number">513</span><br><span class="line-number">514</span><br><span class="line-number">515</span><br><span class="line-number">516</span><br><span class="line-number">517</span><br><span class="line-number">518</span><br><span class="line-number">519</span><br><span class="line-number">520</span><br><span class="line-number">521</span><br><span class="line-number">522</span><br><span class="line-number">523</span><br><span class="line-number">524</span><br><span class="line-number">525</span><br><span class="line-number">526</span><br><span class="line-number">527</span><br><span class="line-number">528</span><br><span class="line-number">529</span><br><span class="line-number">530</span><br><span class="line-number">531</span><br><span class="line-number">532</span><br><span class="line-number">533</span><br><span class="line-number">534</span><br><span class="line-number">535</span><br><span class="line-number">536</span><br><span class="line-number">537</span><br><span class="line-number">538</span><br><span class="line-number">539</span><br><span class="line-number">540</span><br><span class="line-number">541</span><br><span class="line-number">542</span><br><span class="line-number">543</span><br><span class="line-number">544</span><br><span class="line-number">545</span><br><span class="line-number">546</span><br><span class="line-number">547</span><br><span class="line-number">548</span><br><span class="line-number">549</span><br><span class="line-number">550</span><br><span class="line-number">551</span><br><span class="line-number">552</span><br><span class="line-number">553</span><br><span class="line-number">554</span><br><span class="line-number">555</span><br><span class="line-number">556</span><br><span class="line-number">557</span><br><span class="line-number">558</span><br><span class="line-number">559</span><br><span class="line-number">560</span><br><span class="line-number">561</span><br><span class="line-number">562</span><br><span class="line-number">563</span><br><span class="line-number">564</span><br><span class="line-number">565</span><br><span class="line-number">566</span><br><span class="line-number">567</span><br><span class="line-number">568</span><br><span class="line-number">569</span><br><span class="line-number">570</span><br><span class="line-number">571</span><br><span class="line-number">572</span><br><span class="line-number">573</span><br><span class="line-number">574</span><br><span class="line-number">575</span><br><span class="line-number">576</span><br><span class="line-number">577</span><br><span class="line-number">578</span><br><span class="line-number">579</span><br><span class="line-number">580</span><br><span class="line-number">581</span><br><span class="line-number">582</span><br><span class="line-number">583</span><br><span class="line-number">584</span><br><span class="line-number">585</span><br><span class="line-number">586</span><br><span class="line-number">587</span><br><span class="line-number">588</span><br><span class="line-number">589</span><br><span class="line-number">590</span><br><span class="line-number">591</span><br><span class="line-number">592</span><br><span class="line-number">593</span><br><span class="line-number">594</span><br><span class="line-number">595</span><br><span class="line-number">596</span><br><span class="line-number">597</span><br><span class="line-number">598</span><br><span class="line-number">599</span><br><span class="line-number">600</span><br><span class="line-number">601</span><br><span class="line-number">602</span><br><span class="line-number">603</span><br><span class="line-number">604</span><br><span class="line-number">605</span><br><span class="line-number">606</span><br><span class="line-number">607</span><br><span class="line-number">608</span><br><span class="line-number">609</span><br><span class="line-number">610</span><br><span class="line-number">611</span><br><span class="line-number">612</span><br><span class="line-number">613</span><br><span class="line-number">614</span><br><span class="line-number">615</span><br><span class="line-number">616</span><br><span class="line-number">617</span><br><span class="line-number">618</span><br><span class="line-number">619</span><br><span class="line-number">620</span><br><span class="line-number">621</span><br><span class="line-number">622</span><br><span class="line-number">623</span><br><span class="line-number">624</span><br><span class="line-number">625</span><br><span class="line-number">626</span><br><span class="line-number">627</span><br><span class="line-number">628</span><br><span class="line-number">629</span><br><span class="line-number">630</span><br><span class="line-number">631</span><br><span class="line-number">632</span><br><span class="line-number">633</span><br><span class="line-number">634</span><br><span class="line-number">635</span><br><span class="line-number">636</span><br><span class="line-number">637</span><br><span class="line-number">638</span><br><span class="line-number">639</span><br><span class="line-number">640</span><br><span class="line-number">641</span><br><span class="line-number">642</span><br><span class="line-number">643</span><br><span class="line-number">644</span><br><span class="line-number">645</span><br><span class="line-number">646</span><br><span class="line-number">647</span><br><span class="line-number">648</span><br><span class="line-number">649</span><br><span class="line-number">650</span><br><span class="line-number">651</span><br><span class="line-number">652</span><br><span class="line-number">653</span><br><span class="line-number">654</span><br><span class="line-number">655</span><br><span class="line-number">656</span><br><span class="line-number">657</span><br><span class="line-number">658</span><br><span class="line-number">659</span><br><span class="line-number">660</span><br><span class="line-number">661</span><br><span class="line-number">662</span><br><span class="line-number">663</span><br><span class="line-number">664</span><br><span class="line-number">665</span><br><span class="line-number">666</span><br><span class="line-number">667</span><br><span class="line-number">668</span><br><span class="line-number">669</span><br><span class="line-number">670</span><br><span class="line-number">671</span><br><span class="line-number">672</span><br><span class="line-number">673</span><br><span class="line-number">674</span><br><span class="line-number">675</span><br><span class="line-number">676</span><br><span class="line-number">677</span><br><span class="line-number">678</span><br><span class="line-number">679</span><br><span class="line-number">680</span><br><span class="line-number">681</span><br><span class="line-number">682</span><br><span class="line-number">683</span><br><span class="line-number">684</span><br><span class="line-number">685</span><br><span class="line-number">686</span><br><span class="line-number">687</span><br><span class="line-number">688</span><br><span class="line-number">689</span><br><span class="line-number">690</span><br><span class="line-number">691</span><br><span class="line-number">692</span><br><span class="line-number">693</span><br><span class="line-number">694</span><br><span class="line-number">695</span><br><span class="line-number">696</span><br><span class="line-number">697</span><br><span class="line-number">698</span><br><span class="line-number">699</span><br><span class="line-number">700</span><br><span class="line-number">701</span><br><span class="line-number">702</span><br><span class="line-number">703</span><br><span class="line-number">704</span><br><span class="line-number">705</span><br><span class="line-number">706</span><br><span class="line-number">707</span><br><span class="line-number">708</span><br><span class="line-number">709</span><br><span class="line-number">710</span><br><span class="line-number">711</span><br><span class="line-number">712</span><br><span class="line-number">713</span><br><span class="line-number">714</span><br><span class="line-number">715</span><br><span class="line-number">716</span><br><span class="line-number">717</span><br><span class="line-number">718</span><br><span class="line-number">719</span><br><span class="line-number">720</span><br><span class="line-number">721</span><br><span class="line-number">722</span><br><span class="line-number">723</span><br><span class="line-number">724</span><br><span class="line-number">725</span><br><span class="line-number">726</span><br><span class="line-number">727</span><br><span class="line-number">728</span><br><span class="line-number">729</span><br><span class="line-number">730</span><br><span class="line-number">731</span><br><span class="line-number">732</span><br><span class="line-number">733</span><br><span class="line-number">734</span><br><span class="line-number">735</span><br><span class="line-number">736</span><br><span class="line-number">737</span><br></div></div><p>更多有趣的小网页欢迎关注公众号<code>有趣研究社</code>:</p> <blockquote><p><a href="https://cl.heBody.com/" target="_blank" rel="noopener noreferrer">手写春联<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a><br> <a href="https://game.heBody.com/" target="_blank" rel="noopener noreferrer">FC在线模拟器<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a><br> <a href="https://avatar.heBody.com/" target="_blank" rel="noopener noreferrer">爱国头像生成器<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a><br> <a href="https://zfb.heBody.com/" target="_blank" rel="noopener noreferrer">到账语音生成器<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p></blockquote></div></div> <div class="page-edit"><div class="edit-link"><a href="https://github.com/heBody/blog/edit/master/docs/_posts/随笔/我做了一个手写春联小网页,祝大家虎年暴富.md" target="_blank" rel="noopener noreferrer">编辑</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <!----> <div class="last-updated"><span class="prefix">上次更新:</span> <span class="time">2022/12/15, 12:09:39</span></div></div> <div class="page-nav-wapper"><!----> <!----></div></div> <div class="article-list"><div class="article-title"><a href="/blog/archives/" class="iconfont icon-bi">最近更新</a></div> <div class="article-wrapper"><dl><dd>01</dd> <dt><a href="/blog/pages/922650/"><div>
- Git修改分支名
- <!----></div></a> <span class="date">08-11</span></dt></dl><dl><dd>02</dd> <dt><a href="/blog/pages/55f894/"><div>
- CSS给table的tbody添加滚动条
- <!----></div></a> <span class="date">06-29</span></dt></dl><dl><dd>03</dd> <dt><a href="/blog/pages/dcebaf/"><div>
- 一行代码“黑”掉任意网站
- <span class="title-tag">
- 原创
- </span></div></a> <span class="date">11-25</span></dt></dl> <dl><dd></dd> <dt><a href="/blog/archives/" class="more">更多文章></a></dt></dl></div></div></main></div> <div class="footer"><div class="icons"><a href="mailto:30363811@qq.com" title="发邮件" target="_blank" class="iconfont icon-youjian"></a><a href="https://github.com/heBody" title="GitHub" target="_blank" class="iconfont icon-github"></a></div>
- Copyright © 2016-2022
- <span>Hesb | <a href="https://github.com/heBody/blob" target="_blank">MIT License</a></span></div> <div class="buttons"><div title="返回顶部" class="button blur go-to-top iconfont icon-fanhuidingbu" style="display:none;"></div> <div title="去评论" class="button blur go-to-comment iconfont icon-pinglun" style="display:none;"></div> <div title="主题模式" class="button blur theme-mode-but iconfont icon-zhuti"><ul class="select-box" style="display:none;"><li class="iconfont icon-zidong">
- 跟随系统
- </li><li class="iconfont icon-rijianmoshi">
- 浅色模式
- </li><li class="iconfont icon-yejianmoshi">
- 深色模式
- </li><li class="iconfont icon-yuedu">
- 阅读模式
- </li></ul></div></div> <!----> <!----> <!----></div><div class="global-ui"><div></div></div></div>
- <script src="/blog/assets/js/app.5c136166.js" defer></script><script src="/blog/assets/js/2.c241a1b0.js" defer></script><script src="/blog/assets/js/3.6748bd5c.js" defer></script><script src="/blog/assets/js/85.24532d6a.js" defer></script>
- </body>
- </html>
|