基于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动态添加表格数据行(ASP后台数据库保存例子)
May 08 Javascript
jcarousellite.js 基于Jquery的图片无缝滚动插件
Dec 30 Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
May 10 Javascript
Javascript 遮罩层和加载效果代码
Aug 01 Javascript
相册展示PhotoSwipe.js插件实现
Aug 25 Javascript
Vue.js实现移动端短信验证码功能
Mar 29 Javascript
layui的table单击行勾选checkbox功能方法
Aug 14 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
Apr 08 Javascript
微信小程序通过js实现瀑布流布局详解
Aug 28 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
Oct 31 Javascript
JS原形与原型链深入详解
May 09 Javascript
如何在vue中使用HTML 5 拖放API
Jan 14 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
php实现删除空目录的方法
2015/03/16 PHP
PHP通过加锁实现并发情况下抢码功能
2016/08/10 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
2017/01/20 PHP
JavaScript Object的extend是一个常用的功能
2009/12/02 Javascript
window.location.href中url中数据量太大时的解决方法
2013/12/23 Javascript
javascript强制点击广告的方法
2015/02/06 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
2015/12/04 Javascript
Angularjs---项目搭建图文教程
2016/07/08 Javascript
javascript 注释代码的几种方法总结
2017/01/04 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
基于AngularJS实现的工资计算器实例
2017/06/16 Javascript
jQuery选择器_动力节点Java学院整理
2017/07/05 jQuery
浅谈angular.js跨域post解决方案
2017/08/30 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
vscode中Vue别名路径提示的实现
2020/07/31 Javascript
如何在JavaScript中正确处理变量
2020/12/25 Javascript
Python实现的递归神经网络简单示例
2017/08/11 Python
Python SQL查询并生成json文件操作示例
2018/08/17 Python
django框架之cookie/session的使用示例(小结)
2018/10/15 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
2018/12/05 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
2020/02/21 Python
python 实现波浪滤镜特效
2020/12/02 Python
布里斯班女装时尚品牌:Adrift
2017/12/28 全球购物
巴西最大的运动品牌:Olympikus
2020/07/14 全球购物
第一范式(1NF)、第二范式(2NF)和第三范式(3NF)之间的区别是什么?
2016/04/28 面试题
JAVA招聘远程笔试题
2015/07/23 面试题
室内设计专业个人的自我评价
2013/12/18 职场文书
中专生求职自荐信范文
2013/12/22 职场文书
复核员上岗演讲稿
2014/01/05 职场文书
大学生咖啡店创业计划书
2014/01/21 职场文书
校园环保建议书
2014/05/14 职场文书
司考复习计划
2015/01/19 职场文书
深度好文:50条没人告诉你的人生经验,句句精辟
2019/08/22 职场文书
基于JavaScript实现省市联动效果
2021/06/22 Javascript
Go语言基础函数基本用法及示例详解
2021/11/17 Golang