背景

最近在教小朋友写字,令人惆怅的是我竟然弄不准有些常见汉字的笔画。百度搜了下,这么多年自己写“毕”的笔画竟然是错的,提笔先写的是竖勾,而正确的第一笔是一横,真有误导下一代的风险啊。

网上能找到有该功能的 APP ,但下载使用过程中看到广告超多,体验很不好。

今天在阮一峰先生每周分享的素材中看到了一个汉字笔画的项目 hanzi-writer,正好可以解决笔画查找的问题,所以玩了下这个项目,顺便写了一个小应用,把它发送到手机桌面上,成了小朋友日常爱玩的识字小游戏了。

项目地址

hanzi-writer 项目地址为:https://chanind.github.io/hanzi-writer/docs.html
看了下文档,使用很简单。

简单示例

依据官网的介绍, js 库还是很好用的,引入一个 js 就可以了。
我写了一个接受文本输入框的输入、并显示对应汉字笔画的 demo ,代码如下:

<html lang="en">
<head><meta charset="UTF-8"><meta name="Generator" content="EditPlus®"><meta name="Author" content=""><meta name="Keywords" content=""><meta name="Description" content=""><title>展示汉字笔画的小页面</title><script src="https://cdn.jsdelivr.net/npm/hanzi-writer@1.3/dist/hanzi-writer.min.js"></script><script type="text/javascript">var writer = null;function show() {var x = document.getElementById("name");if(character.length>1){character = character.substring(0,1);}//判断是否是汉字var re=/[\u4E00-\u9FA5]/;if (!re.test(character)){$("#msg").text("请输入一个汉字!");return false ;}//首次渲染,创建汉字if(writer == null){writer = HanziWriter.create('grid-background-target', x.value, {width: 200,height: 200,padding: 5,showOutline: true});}else{//非首次,则修改为新的汉字writer.setCharacter(x.value);}//动画展示汉字笔画writer.animateCharacter();}</script>
</head>
<body><p>文本框内输入一个汉字,并点击“笔画按钮”</p>
<input type="text" id="name"/>
<button id="animate-button" onclick="show();">Animate</button>
<span id="msg" style="color:red;">仅支持一个汉字</span>
<br/>
<br/>
<!--汉字所在的田字格背景图-->
<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" id="grid-background-target"><line x1="0" y1="0" x2="200" y2="0" stroke="#DDD"/><line x1="0" y1="0" x2="0" y2="200" stroke="#DDD"/><line x1="0" y1="200" x2="200" y2="200" stroke="#DDD"/><line x1="200" y1="0" x2="200" y2="200" stroke="#DDD"/><line x1="0" y1="100" x2="200" y2="100" stroke="#DDD"/><line x1="100" y1="0" x2="100" y2="200" stroke="#DDD"/><line x1="0" y1="0" x2="200" y2="200" stroke="#DDD"/><line x1="0" y1="200" x2="200" y2="0" stroke="#DDD"/>
</svg></body>
</html>

关键在于 setCharacter 方法,它用于二次渲染时重新渲染汉字区域,如果对已经渲染过的区域再次 create 时会出现汉字叠加的现象。

运行结果

汉字笔画演示地址,点击输入“毕”字,查看笔画结果:

后记

试了下这个汉字库,的确不错。突然发现有些字写了十几年竟然是错误的笔画,
比如“毕”、“爽”、“匝”。看来汉字笔画学习还是应该从娃娃抓起啊。

一个汉字笔画库 hanzi-writer 的小应用相关推荐

  1. Hanzi Weiter的简单应用小案例,在HTML汉字的书写,演示汉字笔画顺序的 汉字笔画库 js vue案例实例

    因为业务需求,上网查询之后写的一个小 demo,参考文档https://hanziwriter.org/ ** 具体实现 ** 在 script 标签加载 Hanzi Writer 只需将以下内容放入 ...

  2. oracle一个汉字三个字节,1个汉字在UTF-8编码占3个字节

    8. 实例 下面,举一个实例. 打开"记事本"程序Notepad.exe,新建一个文本文件,内容就是一个"严"字,依次采用ANSI,Unicode,Unicod ...

  3. 一个适合新手练习的单片机+安卓小项目(三)

    这篇文章主要是对基于安卓的单臂机器人软件方面设计和调试做阐述,设计用到的软件主要有Android Studio,Keil uVision:调试用到的软件主要有STC烧录软件的串口调试助手.putty( ...

  4. 随机展示一个汉字,可以用来让一二年级孩子识字

    为了让孩子复习生字,本来准备去ppt,订单式ppt不能随机播放,还要先转成图片,于是找了一个前端代码,随机展示一个汉字,需要不断刷新页面,刷新一次,随机展示一个汉字 <!DOCTYPE html ...

  5. 一个汉字占几个字节的问题

    一个汉字占几个字节的问题 大家都说一个汉字占两个字节(byte) 但是为什么运行程序会得到如下结果 String name="宋"; int a=name.getBytes(&qu ...

  6. 一个汉字=2个英文字符么?我肤浅的这么认为。- -

    如题包含2个意思: 通常所说的一个汉字2个字节,一个英文字符1个字节. 一个汉字的显示宽度等于两个英文字符的显示宽度. 一.编码问题 这在正常编码里是这样的,所谓正常编码也就是ANSI,我们用NOTE ...

  7. 网易python笔试题_python 饥饿的小易(网易笔试题)

    本周早些时候,学弟给我发了一道网易的笔试题,饥饿的小易,感觉有点意思-分享给大家 题目描述: 小易总是感觉饥饿,所以作为章鱼的小易经常出去寻找贝壳吃.最开始小易在一个初始位置x_0.对于小易所处的当前 ...

  8. mysql model first,一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具

    一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具 Intro DbTool 是一个支持 CodeFirst/DbFirst/ModelFirst 的数据库小工具,原本 ...

  9. oracle和mysql存储汉字_mysql和oracle的一个汉字占几个字节

    以前一直使用oracle11g,一个汉字占3个字节,所以在操作mysql时也一直这样分配长度. 今天测试了下发现不对了 可以看到第一个的长度确实是15,但是第二个为什么是5? 在网上找到资料:char ...

最新文章

  1. [转载] 七龙珠第一部——第035话 北方女孩
  2. c++排查线程hang住_Kafka学习笔记之kafka高版本Client连接0.9Server引发的血案排查 - 时光飞逝,逝者如斯...
  3. joyui版本和android版本,游戏爱好者注意!JOYUI 11来了
  4. 一起学mini2440裸机开发(十)--mini2440外部中断实验
  5. python tushare获取股票数据并可视化_荐Python获取股票数据及其可视化--基于tushare库...
  6. RabbitMQ系列教程之一:我们从最简单的事情开始!Hello World
  7. golang 数组组合成最小的整数_golang数组-----寻找数组中缺失的整数方法
  8. 使用haproxy做负载均衡时保持客户端真实的IP
  9. 用计算机语言拜年,鸡年大吉!22种编程语言大拜年
  10. IoT:BLE4.0教程一 蓝牙协议连接过程与广播分析
  11. 限制本机访问某一些网站,本人不再花时间看新闻了
  12. dcp9020cdn硒鼓!错误_打印机出现硒鼓错误怎么办?打印机显示硒鼓错误分析解决...
  13. 打开PDF时显示please wait...怎么办?没有安装pdf阅读器经常出现的提示信息
  14. 40163 php,微信支付授权获取 openId {quot;errcodequot;:40163,quot;errmsgquot;:quot;code been used, hints:...
  15. 从东南大学906被刷到调剂过程(内含个人感想)
  16. 追风筝的人 第一章
  17. 如何用计算机控制家带你开关,计算机控制系统复习点及答案
  18. html代码在线解析,VIP在线解析HTML源码(修改论坛的源码、加搜索功能)
  19. Matlab进行gnss用户坐标计算,论文推荐 | 嵇昆浦,沈云中:含缺值GNSS基准站坐标序列的非插值小波分析与信号提取...
  20. 自动化提取书生(sep,gd等)文档内容,更新到hive

热门文章

  1. HTML修改CSS样式或更新内容,网页自动刷新
  2. js动态点击放大缩小图片
  3. TZT3801G无线振弦在线监测系统
  4. 高德地图使用自定义地图无效问题
  5. BIOS怎么开启UEFI模式|电脑设置UEFI启动的方法
  6. C++ endl 详解
  7. STORJ 有实际应用
  8. chrome-实用技巧
  9. 关于sp和unity近似的PBR的一篇国外文章
  10. 基于Matlab-gui信号系统设计