实现打字效果

摘自一个表白网站的效果。

方法:

  substr() 可在字符串中抽取从 第一个参数表示从指定的下标,第二个参数表示抽取指定数目的字符。

  indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置,两个参数,第一位指定的字符串,第二是开始检索的位置。

  substring() 方法用于提取字符串中介于两个指定下标之间的字符。

HTML

<div id="main"><div id="content"><div id="code"><span class="col_3f7f5f">/**</span><br /><span class="space"/><span class="col_3f7f5f">* I became a small company programmer,</span><br /><span class="space"/><span class="col_3f7f5f">* So I want to wish you a happy birthday in a different way.</span><br /><span class="space"/><span class="col_3f7f5f">*/</span><br />Boy i = <span class="col_7f0055">new</span> Boy(<span class="col_2a36ff">"HeheWang"</span>);<br />Girl u = <span class="col_7f0055">new</span> Girl(<span class="col_2a36ff">"BigBoss"</span>);<br /><span class="col_3f7f5f">// February 20, 2015, I tell you to be my girlfriend. </span><br />i.love(u);<br /><span class="col_3f7f5f">// Forget your facial expression, may be surprised.</span><br /><span class="col_3f7f5f">// Luckily, You took my girlfriend.</span><br />u.agree(i);<br /><span class="col_3f7f5f">// After, I miss u every day.</span><br />i.miss(u);<br /><span class="col_3f7f5f">// And care for u and our love.</span><br />i.carefor(u);<br /><span class="col_3f7f5f">// Until we start to quarrel.</span><br />i.quarrel(u);<br /><span class="col_3f7f5f">// Soon we'll be fine.</span><br />fine(i,u);<br /><span class="col_3f7f5f">// March 18th is your birthday.</span><br /><span class="col_7f0055">number</span> days = <span class="col_7f0055">0</span>;<br /><span class="col_7f0055">while</span> (days < 365) {<br /><span class="ml_15"/>u happy;<br /><span class="ml_15"/>days++<br /><span class="ml_15"/><span class="col_3f7f5f">// I hope u can live a more meaningful life</span><br /><span class="ml_15"/><span class="col_3f7f5f">// And healthy.</span><br />}<br /><span class="col_3f7f5f">// You say that you won't be so easy to marry me.</span><br /><span class="col_3f7f5f">// So I will try my best to let you marry me.</span><br />i tryhard();<br /><span class="col_3f7f5f">// Until one day I can marry you.</span><br />i.marry(u);<br />i.liveHappilyWith(u);<br /></div></div></div>

 

CSS

html,body{height: 100%;
}
*{margin: 0;padding: 0;
}
body{font-size: 12px;background: #ffe;overflow: hidden;
}
#main{width: 100%;height: 100%;
}
#content{width: 1110px;height: auto;margin-left: 135.5px;overflow: hidden;
}
#code{margin-top: 80px;float: left;width: 440px;height: 500px;color: #333;font-family: "Consolas","Monaco","Bitstream Vera Sans Mono","Courier New","sans-serif";
}
#code .space{margin-left: 7px;
}
.col_3f7f5f{color: #3f7f5f;
}
.col_7f0055{color: #7f0055;font-weight: bold;
}
.col_2a36ff{color: #2a36ff;
}
.ml_15{margin-left: 15px;
}

 

JS

<script src="jquery.min.js"></script>
<script>$("#code").each (function() {var $ele = $(this),  // $("#code")str = $ele.html(),   // 先获取$("#code") 的htmlprogress = 0;        // 定义一个变量$ele.html('');        // 清空$("#code")的html// 定义一个定时器var timer = setInterval(function() {// substr() 方法可在字符串中抽取从 第一个参数 下标开始的指定数目的字符。var current = str.substr(progress, 1);    //
            if (current == '<') {// indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。// 两个参数,第一位指定的字符串,第二是开始检索的位置progress = str.indexOf('>', progress) + 1;} else {progress++;}// substring() 方法用于提取字符串中介于两个指定下标之间的字符。$ele.html(str.substring(0, progress) + (progress & 1 ? '_' : ''));// if (progress >= str.length) {clearInterval(timer);}}, 75);});
</script>

 

上面的代码看起来有点乱,下面是个简单点的。

<body><div class="contain"></div>
</body>
<script src="jquery.min.js"></script>
<script>var str ="hello,word hello,word";var strlen =str.length;var index =0;var con =$(".contain");var boo =null;function start(){boo =setInterval(function(){con.append(str.charAt(index));index++;if(index == strlen){clearInterval(boo);}},100)}start();</script>

 

知识点:

  charAt() 方法可返回指定位置的字符。返回的字符串长度为1。

 

转载于:https://www.cnblogs.com/wyhlightstar/p/6691188.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/283939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php优化-》常用到的部分优化

1.循环内部尽可能不要声明变量&#xff1b; 2.在可以用PHP内部字符串操作函数的情况下&#xff0c;尽量不要用正则表达式&#xff1b; 3.foreach效率更高&#xff0c;尽量用foreach代替while和for循环&#xff1b; 4.用单引号替代双引号引用字符串&#xff1b; 5.尽量的少进行文…

简述:分布式CAP理论和BASE理论

目录 一、什么是CAP&#xff1f; Consistency (一致性)&#xff1a; Availability (可用性): Partition Tolerance (分区容错性): 二、取舍策略 三、Base理论 1、基本可用 2、软状态 3、最终一致性 四、常见产品 Ereka Zookeeper 五、总结 一、什么是CAP&#xf…

WinForm(四)一种实现登录的方式

首先声明&#xff0c;这只是一种登录方式&#xff0c;并不是最好的方式&#xff0c;用这个例子为了说明登录窗体和Application的关系。在登录前&#xff0c;定义了用户实体&#xff0c;然后是一个通用的类&#xff0c;存放进程中当前登录的用户&#xff0c;所以CurrentUser是静…

Java多线程4:synchronized锁机制

脏读 一个常见的概念。在多线程中&#xff0c;难免会出现在多个线程中对同一个对象的实例变量进行并发访问的情况&#xff0c;如果不做正确的同步处理&#xff0c;那么产生的后果就是"脏读"&#xff0c;也就是取到的数据其实是被更改过的。 按照正常来看应该打印&quo…

mysql 日期时间类型 自动转型 及 运算

日期时间类型自动转型 -- now()、字符串、数字转datetime类型 create table t(dt datetime);insert into t values(now());insert into t values(2007-9-3 12:10:10);insert into t values(2007/9/3 121010);insert into t values(2007#9#3 121010);insert into t values(20079…

.NET Community Toolkit 8.0.0 版本发布

.NET 社区工具包&#xff08;.NET Community Toolkit &#xff09;现已发布 8.0.0 版&#xff01;.NET 社区工具包是一组适用于所有 .NET 开发人员&#xff0c;且与任何特定 UI 平台无关的帮助程序和 API。该工具包由 Microsoft 维护和发布&#xff0c;是 .NET 基金会的一部分&…

SpringData JPA、Hibernate、Mybatis三者的区别

目录 1.ORM 考虑 SpringData JPA Hibernate MyBatis 2.业务查询的区别 Spring Data JPA Hibernate Mybatis 3.可拓展性 Spring Data JPA Hibernate Mybatis 4.对缓存 Spring Data JPA Hibernate Mybatis 5.难度性 Spring Data JPA Hibernate Mybatis 总述…

1、内存

程序为什么需要内存 程序运行的目的&#xff1a;程序运行是为了得到一定的结果&#xff0c;程序运行其实是在做一系列的数据计算&#xff0c;所以&#xff1a;程序代码数据&#xff1b;程序运行的目的不外乎2个&#xff1a;过程、结果&#xff1b; 用函数来类比&#xff1a;…

Map 遍历取值及jstl的取值

Map 遍历取值及jstl的取值 学习了&#xff1a;http://blog.csdn.net/yanjiaye520/article/details/17354239 1、Java map的便利取值 Java代码 收藏代码 Map<String,String> map new HashMap<String,String>(); map.put("key1", "value1");…

基于CAP组件实现补偿事务与幂等性保障

【.NET Core】| 总结/Edison Zhou1补偿事务和幂等性在微服务架构下&#xff0c;我们会采用异步通信来对各个微服务进行解耦&#xff0c;从而我们会用到消息中间件来传递各个消息。 补偿事务某些情况下&#xff0c;消费者需要返回值以告诉发布者执行结果&#xff0c;以便于发布者…

Docker与k8s

前言 随着k8s 作为容器编排解决方案变得越来越流行&#xff0c;有些人开始拿 Docker 和 k8s进行对比&#xff0c;不禁问道&#xff1a;Docker 不香吗&#xff1f; k8s 是kubernets的缩写&#xff0c;’8‘代表中间的八个字符。 其实 Docker 和 k8s 并非直接的竞争对手&#xff…

Linux下启动tomcat报java.lang.OutOfMemoryError: PermGen space

2019独角兽企业重金招聘Python工程师标准>>> 一、错误信息 java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav…

Redis安装[Windows]

一. redis下载地址: https://github.com/ServiceStack/redis-windows/tree/master/downloads 根据需要的下载对应版本*.zip即可.(我这里是win7x64) 二.使用 1. 下载之后解压到你相应的目录下: 1 文件介绍&#xff1a; 2 redis-benchmark.exe #基准测试 3 redis-check-aof.e…

简练软考知识点整理-项目启动过程组

启动过程组包含定义一个新项目或现有项目的一个新阶段&#xff0c;授权开始该项目或阶段的一组过程。在启动过程中&#xff0c;定义初步范围和落实初步财务资源&#xff0c;识别那些将相互作用并影响项目总体结果的内外部干系人&#xff0c;选定项目经理&#xff08;如果尚未安…

在 ASP.NET Core 中上传文件

简介文件上传是指将媒体文件&#xff08;本地文件或网络文件&#xff09;从客户端上传至服务器存储。ASP.NET Core 支持使用缓冲的模型绑定&#xff08;针对较小文件&#xff09;和无缓冲的流式传输&#xff08;针对较大文件&#xff09;上传一个或多个文件。缓冲和流式传输是上…

Paxos算法详解

Paxos、Raft分布式一致性算法应用场景一文讲述了分布式一致性问题与分布式一致性算法的典型应用场景。作为分布式一致性代名词的Paxos算法号称是最难理解的算法。本文试图用通俗易懂的语言讲述Paxos算法。 一、Paxos算法背景 Paxos算法是Lamport宗师提出的一种基于消息传递的分…

LeetCode 322. Coin Change

原题 You are given coins of different denominations and a total amount of money amount. Write a function to compute the fewest number of coins that you need to make up that amount. If that amount of money cannot be made up by any combination of the coins, …

Teiid:数据虚拟化Data Virtualization平台

2019独角兽企业重金招聘Python工程师标准>>> Teiid介绍 http://teiid.jboss.org/ 数据虚拟化的定义 https://en.wikipedia.org/wiki/Data_virtualization http://www.denodo.com/en/data-virtualization/overview 数据虚拟化的文章 Sick of ETL? Database virtuali…

如何仿造一个websocket请求?

之前两次singnalr、 websocket实时推送相关&#xff1a;• .NET WebSockets 核心原理初体验[1]• SignalR 从开发到生产部署避坑指南[2]tag&#xff1a;浏览器--->nginx--> server其中提到nginx默认不会为客户端转发Upgrade、Connection标头&#xff0c; 因为为了让被代理…

【转】为什么自动车完全不可以犯错误

为什么自动车完全不可以犯错误 有人跟我讲&#xff0c;我对Google的自动车要求太苛刻了。人无完人&#xff0c;所以Google的产品也不需要是完美的&#xff0c;只要“够好用”就有市场。世界上有那么多糟糕的司机&#xff0c;酒后驾车的&#xff0c;开车时发短信的&#xff0c;打…