最新在做公司的一个项目,需要实现一个敲打代码的动画效果,粗意味比较简单,果断自己直接开写,写着写着发现是一个坑。需要支持语法高亮,并不能直接简单的用setTimeout来动态附件innerHTML。苦思猛想数小时后,果断用动态生成DOM的方法实现了整个效果。
typing.js的打印效果甚至能够支持表格、按钮、表单,只要你页面能够呈现出来的,都可以以一种动态输出的感觉打印出来! 强烈推荐观看完整DEMO
我在网上查了一下,应该目前是没有一个插件是和typing.js效果一致的!
浏览器兼容性方面已经测试通过(IE8-11、chrome、firefox、safari),由于虚拟机的镜像丢失了,暂时没有测试IE6-7。目测是没有任何问题的。
低版本的IE需要手动引入es5-shim文件
typing.js使用非常简单,在页面底部或者Ready
事件中执行相关代码。
<script> var typing = new Typing({ source: document.getElementById('source'), output: document.getElementById('output'), delay: 80 }); typing.start(); script>
DEMO
针对有些博友对于执行DEMO会有Bug(多点几下执行DEMO)的问题集中表达下意思:
这个问题我一开始就知道了。为什么不去做控制是有原因的:
本身这个插件的主要作用是自动播放动画,而非是用户触发的。插件的暂时定位是页面加载的时候做宣传作用的。而在文章中,我是避免进来看文章的人看不到效果才弄成按钮触发而已。
当然后期会考虑在插件中加入Pause之类的暂停方法,以及防止类似这种Bug出现- -!
在优化代码后,已经放在github上,并建立了相关项目页面。
项目主页: http://coffeedeveloper.github.io/typing.js/
完整DEMO:http://coffeedeveloper.github.io/typing.js/demo.html
带闪烁效果的代码书写DEMO:http://coffeedeveloper.github.io/typing.js/demo2.html
后期完成这个插件的2.0版本后,我将会将在这个插件上用到的一些相关技术点和思路整理成一篇博文,敬请期待^_^
如果你觉得这个插件有意思的话。可以点个赞给我或者在github项目上star一个,对我是莫大的鼓励与帮助!