基于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 相关文章推荐
jquery 跨域访问问题解决方法(笔记)
Jun 08 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
Jun 28 Javascript
基于jQuery的获取标签名的代码
Jul 16 Javascript
Javascript中的方法链(Method Chaining)介绍
Mar 15 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
Jun 22 Javascript
Bootstrap CSS布局之表单
Dec 17 Javascript
three.js中3D视野的缩放实现代码
Nov 16 Javascript
Angular(5.2-&gt;6.1)升级小结
Dec 27 Javascript
Node.js console控制台简单用法分析
Jan 04 Javascript
基于jquery ajax的多文件上传进度条过程解析
Sep 11 jQuery
如何基于JavaScript判断图片是否加载完成
Dec 28 Javascript
JS+Canvas实现五子棋游戏
Aug 26 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
PHP音乐采集(部分代码)
2007/02/14 PHP
PHP4与PHP5的时间格式问题
2008/02/17 PHP
PHP.ini安全配置检测工具pcc简单介绍
2015/07/02 PHP
PHP编程中尝试程序并发的几种方式总结
2016/03/21 PHP
PDO::query讲解
2019/01/29 PHP
在PHP中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
Ucren Virtual Desktop V2.0
2006/11/07 Javascript
js函数调用的方式
2014/05/06 Javascript
javascript实现input file上传图片预览效果
2015/12/31 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
JavaScript 对象字面量讲解
2016/06/06 Javascript
通过正则表达式获取url中参数的简单实现
2016/06/07 Javascript
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
react-native中ListView组件点击跳转的方法示例
2017/09/30 Javascript
解决vue的 v-for 循环中图片加载路径问题
2018/09/03 Javascript
Python的Bottle框架中获取制定cookie的教程
2015/04/24 Python
Python如何获取系统iops示例代码
2016/09/06 Python
Python 多线程Threading初学教程
2017/08/22 Python
django富文本编辑器的实现示例
2019/04/10 Python
python3的url编码和解码,自定义gbk、utf-8的例子
2019/08/22 Python
python检测服务器端口代码实例
2019/08/31 Python
python删除指定列或多列单个或多个内容实例
2020/06/28 Python
Python reques接口测试框架实现代码
2020/07/28 Python
Python编写单元测试代码实例
2020/09/10 Python
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
基于HTML5+tracking.js实现刷脸支付功能
2020/04/16 HTML / CSS
MYSQL支持事务吗
2013/08/09 面试题
WebSphere面试题:在WebSphere里面如何部署一个应用
2015/08/02 面试题
教师自荐信范文
2013/12/09 职场文书
材料采购员岗位职责
2013/12/17 职场文书
小学红领巾中秋节广播稿
2014/01/13 职场文书
骨干教师考核评语
2014/12/31 职场文书
CSS实现多个元素在盒子内两端对齐效果
2021/03/30 HTML / CSS
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python