基于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自定义事件代码说明
Jan 31 Javascript
JScript分割字符串示例代码
Sep 04 Javascript
javascript实现获取字符串hash值
May 10 Javascript
jQuery的 $.ajax防止重复提交的两种方法(推荐)
Oct 14 Javascript
js实现返回顶部效果
Mar 10 Javascript
微信小程序开发图片拖拽实例详解
May 05 Javascript
微信小程序实现的贪吃蛇游戏【附源码下载】
Jan 03 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
May 20 Javascript
JS实现的雪花飘落特效示例
Dec 03 Javascript
微信小程序动态添加和删除组件的现实
Feb 28 Javascript
js+canvas实现纸牌游戏
Mar 16 Javascript
vue-router路由懒加载及实现的3种方式
Feb 28 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
phpfans留言版用到的install.php
2007/01/04 PHP
php session处理的定制
2009/03/16 PHP
PHP源码之 ext/mysql扩展部分
2009/07/17 PHP
用PHP将数据导入到Foxmail的实现代码
2010/09/05 PHP
php在线解压ZIP文件的方法
2014/12/30 PHP
配置eAccelerator和XCache扩展来加速PHP程序的执行
2015/12/22 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
2016/09/11 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
javascript 面向对象全新理练之数据的封装
2009/12/03 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
jQuery打印图片pdf、txt示例代码
2014/07/22 Javascript
JavaScript中对象property的删除方法介绍
2014/12/30 Javascript
模仿password输入框的实现代码
2016/06/07 Javascript
基于JS实现类似支付宝支付密码输入框
2016/09/02 Javascript
手机软键盘弹出时影响布局的解决方法
2016/12/15 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
Vue组件系列开发之模态框
2019/04/18 Javascript
解决在layer.open中使用时间控件laydate失败的问题
2019/09/11 Javascript
python3实现跳一跳点击跳跃
2018/01/08 Python
Python入门之后再看点什么好?
2018/03/05 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
2019/01/30 Python
Python之lambda匿名函数及map和filter的用法
2019/03/05 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
2019/08/19 Python
python实现获取单向链表倒数第k个结点的值示例
2019/10/24 Python
Python logging日志库空间不足问题解决
2020/09/14 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
node中使用shell脚本的方法步骤
2021/03/23 Javascript
年度考核自我鉴定
2014/02/02 职场文书
声乐专业大学生职业生涯规划书:理想的未来需要自己去打造
2014/09/20 职场文书
渠道运营商合作协议书范本
2014/10/06 职场文书
教师自查自纠材料
2014/10/14 职场文书
离退休人员聘用协议书
2014/11/24 职场文书