基于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动画对象支持加速、减速、缓入、缓出的实现代码
Sep 30 Javascript
JavaScript异步编程Promise模式的6个特性
Apr 03 Javascript
纯js实现遮罩层效果原理分析
May 27 Javascript
js实现鼠标经过时图片滚动停止的方法
Feb 16 Javascript
详解javascript中的babel到底是什么
Jun 21 Javascript
vue实现学生录入系统之添加删除功能
Jul 11 Javascript
在vue中多次调用同一个定义全局变量的实例
Sep 25 Javascript
在vue中使用express-mock搭建mock服务的方法
Nov 07 Javascript
详解超简单的react服务器渲染(ssr)入坑指南
Feb 28 Javascript
layui实现根据table数据判断按钮显示情况的方法
Sep 26 Javascript
JavaScript判断浏览器版本的方法
Nov 03 Javascript
ssm+vue前后端分离框架整合实现(附源码)
Jul 08 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 创建标签云函数代码
2010/05/26 PHP
PHP中time(),date(),mktime()区别介绍
2013/09/28 PHP
php过滤HTML标签、属性等正则表达式汇总
2014/09/22 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
精解window.setTimeout()&amp;window.setInterval()使用方式与参数传递问题!
2007/11/23 Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
加载 Javascript 最佳实践
2011/10/30 Javascript
Jquery实现瀑布流布局(备有详细注释)
2015/07/31 Javascript
js实现常用排序算法
2016/08/09 Javascript
浅谈JavaScript 函数参数传递到底是值传递还是引用传递
2016/08/23 Javascript
Vue.js事件处理器与表单控件绑定详解
2017/03/20 Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
2018/11/27 Javascript
jQuery提示框插件SweetAlert用法分析
2019/08/05 jQuery
Vue前端项目部署IIS的实现
2020/01/06 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
vue中配置scss全局变量的步骤
2020/12/28 Vue.js
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
浅析Python中的序列化存储的方法
2015/04/28 Python
Python实现自动发送邮件功能
2021/03/02 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
让你Python到很爽的加速递归函数的装饰器
2019/05/26 Python
利用pyecharts实现地图可视化的例子
2019/08/12 Python
浅谈python已知元素,获取元素索引(numpy,pandas)
2019/11/26 Python
详解canvas在圆弧周围绘制文本的两种写法
2018/05/22 HTML / CSS
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
2016/12/16 HTML / CSS
C#的几个面试问题
2016/05/22 面试题
银行柜员求职自荐书
2014/06/18 职场文书
元旦晚会活动总结
2014/07/09 职场文书
云南省召开党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
防溺水安全教育主题班会
2015/08/12 职场文书
学术会议开幕词
2016/03/03 职场文书
2019年中学生的思想品德评语集锦
2019/12/19 职场文书
Django实现WebSocket在线聊天室功能(channels库)
2021/09/25 Python
PC版《死亡搁浅导剪版》现已发售 展开全新的探险
2022/04/03 其他游戏