实现打字效果

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

方法:

  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") 的html
        progress = 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。

时间: 2024-10-24 04:09:31

实现打字效果的相关文章

Unity UGUI 使用 CCTween 实现 打字效果

最近闲来无事 就研究了下 打字效果的实现 结果发现很简单 直白了说是太简单了  下边效果图加代码 走着 SVN 下载地址 http://code.taobao.org/svn/CCAnim 欢迎大家进行补充 点击下载

基于定时器延时器的简单打字效果——拿去表白吧

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 7 <style> 8 #div1{ 9 width: 300px; height: 500px; margin: 0 auto;border: 10px solid skyblue; border-radius: 10px; 10 line-

js实现打字效果

<!DOCTYPE html>      <html>       <head>           <meta charset='utf-8'>           <title>js typing</title>       </head>          <body>           <div id='text'></div>              <script&

用Jquery实现打字效果

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> #container{ height: 200px; width: 200px; border: 1px solid #ccc; } </

CSS 实现打字效果

原文:CSS 实现打字效果 JS实现 最近做项目的时候需要实现一个字符逐个出现的打字效果,在网上一搜有个不错的jQuery插件Typed.js,效果很赞 <div class="element"></div> <script src="typed.js"></script> <script> $(function(){ $(".element").typed({ strings: [&q

标题栏里的打字效果

<html> <title>标题栏里的打字效果-石家庄瑜伽教练培训-潜水射流曝气机</title> <body> <script language="JavaScript1.2"> var message="欢迎光临『我们的网址www.sjz-yoga.com』!" var message=message+" " i="0" var temptitle="&

JS打字效果的动态菜单代码分享

这篇文章主要介绍了JS打字效果的动态菜单,推荐给大家,有需要的小伙伴可以参考下. 这是一款基于javascript实现的打字效果的动态菜单特效代码,分享给大家学习学习. 小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式.为大家分享的JS打字效果的动态菜单代码如下 <html> <head> <title>JS打字效果的动态菜单</title> <meta http-equiv="imagetoolbar" content=&q

基于jQuery标题有打字效果的焦点图

给大家分享一款基于jQuery标题有打字效果的焦点图.之前为大家分享了好多jquery的焦点图.这款焦点图适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗. 在线预览   源码下载 实现的代码. html代码: <!-- 代码 开始 --> <div id="header"> <div class="wrap"> <div id="slide-holder&q

jQuery模仿人类打字效果插件typetype

typetype是一款模仿人类打字效果的jQuery插件,typetype非常轻巧,文件不到2K,gzipped压缩后只有578字节,但模仿的效果非常逼真,一字一字的顿出和回删效果,让人惊叹不止,喜欢的朋友研究下吧,下面来看下它的使用方法: 引入核心文件 1 <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> 2 <script type="text/j

JS让网页上文字出现键盘打字的打字效果

一个挺简单的网页特效:JS让网页上文字出现键盘打字的打字效果实现 演示地址:http://codepen.io/guihailiuli/pen/jPOYMZ 以代码形式实现过程分析: <html> <head> <title>打字效果</title> <meta http-equiv="Content-Type" Content="text/html;charset=gb2312" /> <style