基于Css3和JQuery实现打字机效果


Posted in Javascript onAugust 11, 2015

先给大家附上效果图:

基于Css3和JQuery实现打字机效果

最近做项目的时候需要实现一个字符逐个出现的打字效果,用css的clip+css的动画实现的,与自己写的打字机效果相结合,整

理一起,效果很赞。

先来说说这个线条,我们会看到它是条,实际上就是个四周border有规律的显示隐藏,那么这里必定会想到after,before属性,

我们暂且先考虑after。

先建立一个box,然后after一个边框

<div class="box"></div>
 .box:before{
 content: '';
 position: absolute;
 width:px;height: px;border:px red solid;
 left:-px;top:-px;
 z-index: ;
 }

接下来要做的就是让它有规律的显示隐藏就可以了,这里要用到clip属性,我这篇文章有讲到:css圆形百分比进度条的实现原理。

在这里说说我们这个如何实现,首先我要让这个先显示上边框-左-底-右,这样就有了一个循环。根据clip,rect(上,右,底,

左),比如显示上边框,那么就是:

clip:rect(px,px,px,px);

我们只需用animation让它依次显示就ok

@-webkit-keyframes clipMe{
%{ clip: rect(px, px, px, px); }
%{ clip: rect(px, px, px, px); }
%{ clip: rect(px, px, px, px); }
%{ clip: rect(px, px, px, px); }
%{ clip: rect(px, px, px, px); }
}

 然后再after中调用显示:

.box:after{
-webkit-animation:clipMe s linear infinite;
}

当然,我们再加一个一模一样的before就ok了,他们的时间间隔为s,这里要注意,如果你是延迟s,那么你会在s内看到的是整

个边框出现,这里要改为延迟-s,这个问题就会完美解决。

.box:before{
-webkit-animation:clipMe s -s linear infinite;
}

/***************************************************************/
再来说说打字机,打字机无非就是不断替换显示字符显示在屏幕上,先获取box里的内容,

<div class="box">
<span>/**仅共娱乐,然并卵**/</span>
<p>Login : Jmingzi</p>
<p>password : ******</p>
<p>Access is granted</p>
<span>Welcome ymblog.net !</span>
</div>

 获取以后再一个个替换显示,

var t = setInterval(function(){
str = con.substr(, strlen) + "_";
me.obj.html(str);
//内容打印完毕
if(strlen == con.length){
clearInterval(t);
}
strlen = strlen + ;
}, me.speed);

在这里我只不过将它封装为一个类,便于初始化一些参数,完整代码:

//初始化工作,获取几段文字内容,将它们隐藏后逐个显示即可
$(function(){
function Type(obj, speed, welcome){
this.obj = obj;
this.speed = speed;
this.welcome = welcome;
}
Type.prototype = {
init : function(){
var str = this.obj.html();
this.obj.html(this.welcome);
this.add(str);
},
add : function(con){
var me = this;
var str;
var strlen = ;
var t = setInterval(function(){
str = con.substr(, strlen) + "_";
me.obj.html(str);
//内容打印完毕
if(strlen == con.length){
clearInterval(t);
}
strlen = strlen + ;
}, me.speed);
}
}
var a = new Type($('.box'), , '正在初始化...');
a.init();
});

以上就是本文的全部内容,希望对大家有所帮助

Javascript 相关文章推荐
js 文件引入实现代码
Apr 23 Javascript
Chrome中模态对话框showModalDialog返回值问题的解决方法
May 25 Javascript
基于JQuery的简单实现折叠菜单代码
Sep 15 Javascript
jQuery链式操作如何实现以及为什么要用链式操作
Jan 17 Javascript
让ie6也支持websocket采用flash封装实现
Feb 18 Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
Apr 22 Javascript
简介JavaScript中的sub()方法的使用
Jun 08 Javascript
Ajax的概述与实现过程
Nov 18 Javascript
js实现导航栏中英文切换效果
Jan 16 Javascript
jquery.validate表单验证插件使用详解
Jun 21 jQuery
React 使用browserHistory项目访问404问题解决
Jun 01 Javascript
vue cli4中mockjs在dev环境和build环境的配置详情
Apr 06 Vue.js
js实现获取当前时间是本月第几周的方法
Aug 11 #Javascript
js判断子窗体是否关闭的方法
Aug 11 #Javascript
JavaScript实现下拉列表框数据增加、删除、上下排序的方法
Aug 11 #Javascript
iframe跨域通信封装详解
Aug 11 #Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
Aug 11 #Javascript
JS+CSS实现美化的下拉列表框效果
Aug 11 #Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
Aug 11 #Javascript
You might like
php中数组首字符过滤功能代码
2012/07/31 PHP
php获取文件内容最后一行示例
2014/01/09 PHP
php实现根据字符串生成对应数组的方法
2014/09/22 PHP
php中删除、清空session的方式总结
2015/10/09 PHP
javaScript实现浮点数转十六进制字符
2013/10/29 Javascript
jQuery构造函数init参数分析
2015/05/13 Javascript
JavaScript实现多种排序算法
2016/02/24 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
使用vue编写一个点击数字计时小游戏
2016/08/31 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
AngularJS中$http使用的简单介绍
2017/03/17 Javascript
self.attachevent is not a function的解决方法
2017/04/04 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
浅谈ECMAScript 中的Array类型
2019/06/10 Javascript
使用vue-router切换页面时实现设置过渡动画
2019/10/31 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
2019/11/10 Javascript
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
Django 内置权限扩展案例详解
2019/03/04 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
2019/04/12 Python
Python3批量生成带logo的二维码方法
2019/06/24 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
2019/08/19 Python
Python模块汇总(常用第三方库)
2019/10/07 Python
python TK库简单应用(实时显示子进程输出)
2019/10/29 Python
Python猴子补丁知识点总结
2020/01/05 Python
jupyter lab文件导出/下载方式
2020/04/22 Python
如何编写python的daemon程序
2021/01/07 Python
HTML5去掉输入框type为number时的上下箭头的实现方法
2020/01/03 HTML / CSS
小学师德标兵先进事迹材料
2014/05/25 职场文书
党支部综合考察意见
2015/06/01 职场文书
2016猴年春节慰问信
2015/11/30 职场文书
2016年教师节慰问信
2015/12/01 职场文书
如何做好员工培训计划?
2019/07/09 职场文书
中国古代史学名著《战国策》概述
2019/08/09 职场文书