打字机效果:Typed.js

Type.js是一个轻量级的插件, 用于实现页面文字的打字机效果. 它使用起来非常简单, 只需要几行代码就能实现高大上的打字机效果.

一.使用Type.js

1. 引入Type.js

  • 方法1: ES6模块化引入官方推荐
    1
    2
     //npm下载
    npm install typed.js
    1
    2
    //在js文件中用模块的方式引入
    import Typed from 'typed.js';
    采用该方法导入type.js需要使用Babel, 否则浏览器不能识别ES6的语法. 如果只是练手, 推荐使用下面的方法.
  • 方法2: 常规导入
    1
    2
      //script标签导入
    <script src="./typed.js"></script>
    1
    2
    //cdn导入
    <script src="https://cdn.bootcss.com/typed.js/2.0.5/typed.js"></script>

    2. 实例化对象

    1
    <span class="element"></span> //目标容器
    如果想加入鼠标闪烁效果, 引入一下样式
    1
    python .typed-cursor{ opacity: 1; -webkit-animation: blink 0.7s infinite; -moz-animation: blink 0.7s infinite; animation: blink 0.7s infinite; } @keyframes blink{ 0% { opacity:1; } 50% { opacity:0; } 100% { opacity:1; } } @-webkit-keyframes blink{ 0% { opacity:1; } 50% { opacity:0; } 100% { opacity:1; } } @-moz-keyframes blink{ 0% { opacity:1; } 50% { opacity:0; } 100% { opacity:1; } }

    3. 效果演示

二.其他配置参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
var typed = new Typed(".element", {
/**
* @property {array} strings strings to be typed
* @property {string} stringsElement ID of element containing string children
*/
strings: ['These are the default values...', 'You know what you should do?', 'Use your own!', 'Have a great day!'],
stringsElement: null,

/**
* @property {number} typeSpeed type speed in milliseconds
*/
typeSpeed: 0,

/**
* @property {number} startDelay time before typing starts in milliseconds
*/
startDelay: 0,

/**
* @property {number} backSpeed backspacing speed in milliseconds
*/
backSpeed: 0,

/**
* @property {boolean} smartBackspace only backspace what doesn't match the previous string
*/
smartBackspace: true,

/**
* @property {boolean} shuffle shuffle the strings
*/
shuffle: false,

/**
* @property {number} backDelay time before backspacing in milliseconds
*/
backDelay: 700,

/**
* @property {boolean} fadeOut Fade out instead of backspace
* @property {string} fadeOutClass css class for fade animation
* @property {boolean} fadeOutDelay Fade out delay in milliseconds
*/
fadeOut: false,
fadeOutClass: 'typed-fade-out',
fadeOutDelay: 500,

/**
* @property {boolean} loop loop strings
* @property {number} loopCount amount of loops
*/
loop: false,
loopCount: Infinity,

/**
* @property {boolean} showCursor show cursor
* @property {string} cursorChar character for cursor
* @property {boolean} autoInsertCss insert CSS for cursor and fadeOut into HTML <head>
*/
showCursor: true,
cursorChar: '|',
autoInsertCss: true,

/**
* @property {string} attr attribute for typing
* Ex: input placeholder, value, or just HTML text
*/
attr: null,

/**
* @property {boolean} bindInputFocusEvents bind to focus and blur if el is text input
*/
bindInputFocusEvents: false,

/**
* @property {string} contentType 'html' or 'null' for plaintext
*/
contentType: 'html',

/**
* All typing is complete
* @param {Typed} self
*/
onComplete: (self) => {},

/**
* Before each string is typed
* @param {number} arrayPos
* @param {Typed} self
*/
preStringTyped: (arrayPos, self) => {},

/**
* After each string is typed
* @param {number} arrayPos
* @param {Typed} self
*/
onStringTyped: (arrayPos, self) => {},

/**
* During looping, after last string is typed
* @param {Typed} self
*/
onLastStringBackspaced: (self) => {},

/**
* Typing has been stopped
* @param {number} arrayPos
* @param {Typed} self
*/
onTypingPaused: (arrayPos, self) => {},

/**
* Typing has been started after being stopped
* @param {number} arrayPos
* @param {Typed} self
*/
onTypingResumed: (arrayPos, self) => {},

/**
* After reset
* @param {Typed} self
*/
onReset: (self) => {},

/**
* After stop
* @param {number} arrayPos
* @param {Typed} self
*/
onStop: (arrayPos, self) => {},

/**
* After start
* @param {number} arrayPos
* @param {Typed} self
*/
onStart: (arrayPos, self) => {},

/**
* After destroy
* @param {Typed} self
*/
onDestroy: (self) => {}
});

【参考资料】

Type.js官网: http://www.mattboldt.com/demos/typed-js/
Github文档地址:https://github.com/mattboldt/typed.js/
CDN地址:http://www.bootcdn.cn/typed.js/