基于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几个不错的函数 $$()
Oct 09 Javascript
htm调用JS代码
Mar 15 Javascript
关于js拖拽上传 [一个拖拽上传修改头像的流程]
Jul 13 Javascript
基于jquery实现的一个选择中国大学的弹框 (数据、步骤、代码)
Jul 26 Javascript
Document.location.href和.replace的区别示例介绍
Mar 04 Javascript
js和jquery如何获取图片真实的宽度和高度
Sep 28 Javascript
JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
Jun 21 Javascript
angularjs实现文字上下无缝滚动特效代码
Sep 04 Javascript
html中鼠标滚轮事件onmousewheel的处理方法
Nov 11 Javascript
Javascript中八种遍历方法的执行速度深度对比
Apr 25 Javascript
Javascript实现跨域后台设置拦截的方法详解
Aug 04 Javascript
jQuery插件simplePagination的使用方法示例
Apr 28 jQuery
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
收听困难?教您超简便短波广播抗干扰方法!
2021/03/01 无线电
PHP学习之整理字符串
2011/04/17 PHP
使用php实现快钱支付功能(涉及到接口)
2013/07/01 PHP
PHP上传图片进行等比缩放可增加水印功能
2014/01/13 PHP
php 把数字转换成汉字的代码
2015/07/21 PHP
php反序列化长度变化尾部字符串逃逸(0CTF-2016-piapiapia)
2020/02/15 PHP
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
读jQuery之八 包装事件对象
2011/06/21 Javascript
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
javascript中的self和this用法小结
2014/02/08 Javascript
JavaScript获取flash对象与网上的有所不同
2014/04/21 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
微信公众号支付H5调用支付解析
2016/11/04 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
详解nodeJS之二进制buffer对象
2017/06/03 NodeJs
Vue引入jquery实现平滑滚动到指定位置
2018/05/09 jQuery
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
2019/07/19 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
[00:32]2018DOTA2亚洲邀请赛Liquid出场
2018/04/03 DOTA
python中实现定制类的特殊方法总结
2014/09/28 Python
对numpy中shape的深入理解
2018/06/15 Python
对pandas写入读取h5文件的方法详解
2018/12/28 Python
Python检查ping终端的方法
2019/01/26 Python
Ubuntu18.04下python版本完美切换的解决方法
2019/06/14 Python
Python Threading 线程/互斥锁/死锁/GIL锁
2019/07/21 Python
python中的列表与元组的使用
2019/08/08 Python
python如何操作mysql
2020/08/17 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
HTML5 Canvas自定义圆角矩形与虚线示例代码
2013/08/02 HTML / CSS
Ibood荷兰:互联网每日最佳在线优惠
2019/02/28 全球购物
专科毕业生求职简历的自我评价
2013/10/12 职场文书
干部培训自我鉴定
2014/01/22 职场文书
初中班级口号
2014/06/09 职场文书
《黄道婆》教学反思
2016/02/22 职场文书