我们在看电影时经常能够看到一些炫酷的打字机效果,用于显示一些地名或剧情简介。我们在网页中也能够实现类似的效果,目前网上已经有很多打字机效果的插件,如轻量级响应式jQuery打字机特效插件和逼真的js打字机效果插件等。那么,实现类似的打字机效果困难吗?其实要制作一个打字机效果非常简单,下面我们就以纯JavaScript来实现一个炫酷的打字机效果。

在完成这个打字机效果之前,让我们先来体验一下打字机的效果:

开始打印

制作打字机效果

上面的效果是如何工作的呢?让我们来一步步的分析。

首先我们需要一个显示打字效果的容器:

id为teletype的元素用于显示要打印的文字。开始是它带有一个hidden属性,用于阻止文字在开始时就显示出来。

另外还需要一个输入框和一个按钮,让我们可以输入要打印的文字,完整的HTML结构如下:

开始打印

接下来,我们定义一个光标元素,它用于模拟打字时闪烁的光标效果:

var cursor = "|";

然后将光标元素插入到span#teletype节点中。

var teletype = document.getElementById("teletype");

teletype.innerHTML = cursor;

开始打印文字时,将span#teletype元素的hidden属性去掉。

teletype.removeAttribute("hidden");

然后通过一个计时器不断的刷新span#teletype元素中的内容,通过一个counter计数器来不断累加要显示的文字,模拟出打字的效果。

var teletype = document.getElementById("teletype");

var input = document.querySelector(".u-input");

var telecopy = input.value;

var timer = setInterval(function(){

teletype.innerHTML = telecopy.substr(0, counter) + cursor;

counter++;

if(counter === telecopy.length + 1) {

clearInterval(timer);

}

}, 100);

完整的js代码应该类似下面的样子:

(function(){

var btn = document.getElementById("btn-ctrl");

function typeIt() {

var cursor = "|";

var teletype = document.getElementById("teletype");

var input = document.querySelector(".u-input");

var telecopy = input.value;

var counter = 0;

teletype.innerHTML = cursor;

teletype.removeAttribute("hidden");

var timer = setInterval(function(){

teletype.innerHTML = telecopy.substr(0, counter) + cursor;

counter++;

if(counter === telecopy.length + 1) {

clearInterval(timer);

}

}, 100);

}

btn.onclick = function(){

typeIt();

}

})();

增加光标闪烁效果

在文字打印过程中和打印结束后,光标应该有一种不停闪烁的效果。这种光标闪烁效果可以使用CSS3的animation动画来完成。

@keyframes blink {

from, to {

color: transparent;

}

50% {

color: black;

}

}

在光标元素调用这个动画。

#teletype span {

animation: blink 1s step-end infinite;

}

到这里,一个最简单的JavaScript打字机效果就完成了!

html5 打字机效果,使用JavaScript制作打字机文本效果相关推荐

  1. html5 图片粒子效果,Canvas + JavaScript 制作图片粒子效果

    首先看一下源图和转换成粒子效果的对比图: 左侧图片为源图,右侧图片为粒子效果图.该效果是在Canvas画布上制作的.将图片制作成粒子效果相对而言是比较简单的.重点了解两个知识点即可 1:图片是通过im ...

  2. HTML+CSS+JavaScript制作3D云效果,叼炸天!可用鼠标控制方向!

    HTML+CSS+JavaScript制作3D云效果,叼炸天!可用鼠标控制方向! 作品介绍 1.网页作品简介方面 :3D云效果,叼炸天!可用鼠标控制方向! 2.网页作品编辑方面:此作品为学生个人主页网 ...

  3. html5实现无缝滚动的效果,基于JavaScript实现无缝滚动效果

    本文实例为大家分享了JavaScript实现无缝滚动效果展示的具体代码,供大家参考,具体内容如下 首先应该区分样式中的绝对定位和相对定位,一般来说,移动的单位为绝对定位,在这个实例中,移动的Ul就是绝 ...

  4. html5实现立体照片墙效果,利用css制作3D照片墙效果

    利用css制作3D照片墙,具体代码如下所示: 无标题文档 以上代码是准备工作,在html代码的body主体中放了一个div,里面包着你想要显示在照片墙上的照片,数量可以任意.接着开始着手写样式. bo ...

  5. ppt怎么把图片做成翻书效果_ppt如何制作翻书效果 ppt翻书效果怎么制作

    相信说起PPT,很多的网友经常都会使用到,无论是工作党还是学生党,经常都会使用到PPT进行会议演示吧,而PPT中有非常多的繁杂的各种制作效果,其中有一个翻书效果,好多网友都表示不知道怎么制作,那么下面 ...

  6. ppt怎么把图片做成翻书效果_PPT怎么制作翻书效果?PPT制作翻书效果教程

    PPT是我们经常使用的幻灯片制作软件,制作的幻灯片可以进行播放.那么为了使PPT内容更加的丰富.生动,我们可以在制作PPT的时候添加一些动画效果,今天小编要教的大家的是PPT中的翻书动画效果,有兴趣的 ...

  7. html5本地点赞状态,javascript实现手动点赞效果

    做移动开发的时候经常会遇到点赞的一些处理,尤其是当使用字体图标的时候,由于仅希望改变字体,但是字体经过编译之后又和它的.html()不一致,所以导致判断起来比较麻烦,最后想了一个办法来解决此问题. 还 ...

  8. 计算机flash拉开效果,使用Flash制作卷轴展开效果

    1.北京奥运会开幕式上那充满诗意的卷轴,以及它所呈现给我们的一幅幅无法言喻的美妙画面,大家一定还记忆犹新吧!今天我们就用Flash来制作一幅诗意的水墨卷轴展开的动画,主要用到矩形工具和渐变填充工具,操 ...

  9. 用计算机做动画效果,ps制作眨眼效果,用ps制作眨眼动画效果

    AE是强大的视频制作软件,那么你知道如何快速的制作酷炫的卡片擦除效果么?下面让我们跟着以下图文步骤,学习下制作的方法. 工具/材料 After Effects CS4 操作方法 01打开AE软件,创建 ...

最新文章

  1. python字符串功能_python字符串内置功能
  2. 计算机社团嘉年华的游戏,社团嘉年华,游戏大乱斗!
  3. mysql5.7 忘记root密码后,如何找回密码?
  4. hdu 5008 Boring String Problem(后缀数组+rmq)
  5. 解密阿里云七武器之高性能消息服务ONS
  6. 层次化防御保证企业门户网站安全
  7. 快速学习nodejs系列:四、nodejs特性1--单线程
  8. 推算周期软件有哪些,推算周期软件怎么用
  9. java游戏开发入门(一) - HelloWorld
  10. 9 个出色的 JavaScript 库推荐【云图智联】
  11. 用博客记录成长的历程
  12. android打开apk文件怎么打开,APK是什么文件 APK文件怎么打开?
  13. 十个值得所有极客收藏的网站
  14. 统一社会信用代码的校验
  15. 我对智能网卡offload的认识
  16. DZone每日必读-news: 指导软件团队取得成功的 4 种方法
  17. 【蓝桥杯选拔赛真题01】Scratch消失的小猫 少儿编程scratch蓝桥杯选拔赛真题讲解
  18. 运维工程师必备的认证【红帽liunx-RHCE 8】
  19. line-height的使用
  20. 《泛型编程与stl》

热门文章

  1. iOS 四舍六入五成双算法
  2. php程序员 一万小时定律,科学网—一万小时定律——阅读笔记 - 贾琳的博文
  3. 仿b站demo(效果图)
  4. 为什么大数据平台要回归SQL
  5. 《Linux性能优化实战》笔记(十三)—— 如何“快准狠”找到系统内存的问题
  6. OPencv无损保存图片
  7. 沃信科技T3 Sota安装配置手册(1-4章)
  8. better-scroll内pullingUp无效(控制台报错)
  9. ★思维导图的30个问答
  10. python客户端软件开发_妙小程python客户端