基于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 相关文章推荐
window.dialogArguments 使用说明
Apr 11 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
Dec 04 Javascript
Eclipse下jQuery文件报错出现错误提示红叉
Jan 13 Javascript
页面图片浮动左右滑动效果的简单实现案例
Feb 10 Javascript
JQuery用户名校验的具体实现
Mar 18 Javascript
chrome浏览器如何断点调试异步加载的JS
Sep 05 Javascript
JavaScript轻松创建级联函数的方法示例
Feb 10 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
Sep 18 Javascript
Vue-不允许嵌套式的渲染方法
Sep 13 Javascript
jQuery each和js forEach用法比较
Feb 27 jQuery
React路由鉴权的实现方法
Sep 05 Javascript
原生JS实现拖拽功能
Dec 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
PHP笔记之:基于面向对象设计的详解
2013/05/14 PHP
PHP中文编码小技巧
2014/12/25 PHP
让广告代码不再影响你的网页加载速度
2006/07/07 Javascript
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
js模拟实现Array的sort方法
2007/12/11 Javascript
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
jQuery学习笔记之jQuery构建函数的7种方法
2014/06/03 Javascript
js读取csv文件并使用json显示出来
2015/01/09 Javascript
jQuery.each使用详解
2015/07/07 Javascript
JS实现网站菜单拖拽移位效果的方法
2015/09/24 Javascript
原生JavaScript实现动态省市县三级联动下拉框菜单实例代码
2016/02/03 Javascript
Bootstrap按钮下拉菜单组件详解
2016/05/10 Javascript
在JavaScript中对HTML进行反转义详解
2016/05/18 Javascript
JavaScript数组操作函数汇总
2016/08/05 Javascript
jquery实现(textarea)placeholder自动换行
2016/12/22 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
react 兄弟组件如何调用对方的方法示例
2018/10/23 Javascript
ES6 Object属性新的写法实例小结
2019/06/25 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
jquery插件实现轮播图效果
2020/10/19 jQuery
vue监听键盘事件的相关总结
2021/01/29 Vue.js
[54:06]OG vs TNC 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python基于queue和threading实现多线程下载实例
2014/10/08 Python
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2014/11/28 Python
Python使用turtule画五角星的方法
2015/07/09 Python
Python实现配置文件备份的方法
2015/07/30 Python
PyQt5创建一个新窗口的实例
2019/06/20 Python
python挖矿算力测试程序详解
2019/07/03 Python
机关门卫岗位职责
2013/12/30 职场文书
励志演讲稿范文
2014/04/29 职场文书
本科应届生自荐信
2014/06/29 职场文书
战略合作意向书
2014/07/29 职场文书
学校中秋节活动总结
2015/03/23 职场文书
2016年暑假学生家长评语
2015/12/01 职场文书
SQL SERVER中常用日期函数的具体使用
2021/04/08 SQL Server
Java移除无效括号的方法实现
2021/08/07 Java/Android