基于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 相关文章推荐
javascript 节点遍历函数
Mar 28 Javascript
javascript中onmouse事件在div中失效问题的解决方法
Jan 09 Javascript
JavaScript格式化日期时间的方法和自定义格式化函数示例
Apr 04 Javascript
jQuery filter函数使用方法
May 19 Javascript
微信小程序 Audio API详解及实例代码
Sep 30 Javascript
Bootstrap基本组件学习笔记之列表组(11)
Dec 07 Javascript
用jQuery实现优酷首页轮播图
Jan 09 Javascript
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
May 21 Javascript
小程序从手动埋点到自动埋点的实现方法
Jan 24 Javascript
vue实现的封装全局filter并统一管理操作示例
Feb 02 Javascript
JS替换字符串中指定位置的字符(多种方法)
May 28 Javascript
ajax请求前端跨域问题原因及解决方案
Oct 16 Javascript
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
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
2007/09/30 PHP
php目录操作函数之获取目录与文件的类型
2010/12/29 PHP
php生成txt文件标题及内容的方法
2014/01/16 PHP
PHP安全的URL字符串base64编码和解码
2014/06/19 PHP
ThinkPHP路由机制简介
2016/03/23 PHP
javascript中的几个运算符
2007/06/29 Javascript
JS的数组的扩展实例代码
2008/07/09 Javascript
Javascript 面向对象(三)接口代码
2012/05/23 Javascript
5个JavaScript经典面试题
2014/10/13 Javascript
JS中取二维数组中最大值的方法汇总
2016/04/17 Javascript
jQuery代码实现对话框右上角菜单带关闭×
2016/05/03 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(二)之数据支持json字符串、list集合
2016/08/11 Javascript
分享javascript、jquery实用代码段
2016/10/20 Javascript
AngularJS ui-router (嵌套路由)实例
2017/03/10 Javascript
如何使用Bootstrap创建表单
2017/03/29 Javascript
详解Angular2 关于*ngFor 嵌套循环
2017/05/22 Javascript
JavaScript事件方法(实例讲解)
2017/06/27 Javascript
Bootstrap datepicker日期选择器插件使用详解
2017/07/26 Javascript
详解Vue的watch中的immediate与watch是什么意思
2019/12/30 Javascript
使用Python操作MySQL的一些基本方法
2015/08/16 Python
Windows安装Python、pip、easy_install的方法
2017/03/05 Python
python随机取list中的元素方法
2018/04/08 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
Python发送邮件功能示例【使用QQ邮箱】
2018/12/04 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
2019/02/19 Python
keras .h5转移动端的.tflite文件实现方式
2020/05/25 Python
Python经典五人分鱼实例讲解
2021/01/04 Python
Avène雅漾美国官方网站:敏感肌肤护理专家
2016/10/24 全球购物
学生个人求职自荐信格式
2013/09/23 职场文书
逃课上网检讨书
2014/02/20 职场文书
秋天的雨教学反思
2014/04/27 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
雨花台导游词
2015/02/06 职场文书
2015年复活节活动总结
2015/02/27 职场文书
你离财务总监还有多远?速览CFO的岗位职责
2019/11/18 职场文书