推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
lizhiqing1996

自己写了一个实现打字机效果的 js 库,大家给点意见吧

  •  2
     
  •   lizhiqing1996 · Aug 17, 2015 · 9579 views
    This topic created in 4101 days ago, the information mentioned may be changed or developed.

    本来想在自己的主页上面加一个打字机的效果,结果去网上找到的代码看起来都好麻烦,于是自己写了一个。这个库是给纯小白用的(因为我自己也是小白),大牛请轻喷!
    地址: https://github.com/Zhiqing-Lee/js-printer

    Supplement 1  ·  Aug 17, 2015
    V2EX 的人太热情了 T_T,本来只是自己弄着玩一下的,没想到发个帖就快到 30 个 star 了 T_T 。让我受宠若惊啊

    弄了个了演示地址: http://studio.zhiqing.info/program/js-printer/,
    Supplement 2  ·  Aug 17, 2015
    上面的演示地址多了个逗号: http://studio.zhiqing.info/program/js-printer/
    62 replies  •  2017-02-22 13:49:45 +08:00
    BuilderQiu
    BuilderQiu
    Aug 17, 2015
    1
    SUSE是Sichuan University of ...?
    iamcho
    iamcho
    Aug 17, 2015
    2
    mark
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    3
    @BuilderQiu 是的
    wsph123
    wsph123
    Aug 17, 2015❤️1
    4
    createTextNode() 做更新好一些?
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    5
    @wsph123 我是小白,没怎么用过js。我能说我都不知道creatTextNode()是什么吗!T_T我先去看看
    gangsta
    gangsta
    Aug 17, 2015
    6
    试试这个?
    /t/161631
    lolicon
    lolicon
    Aug 17, 2015
    7
    $ I am study in SUSE
    I am study
    df4VW
    df4VW
    Aug 17, 2015
    8
    学弟摸摸头
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    9
    @gangsta 比我的牛多了!!!
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    10
    @lolicon 我期末英语考了59分,不要跟我说这些T_T
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    11
    @df4VW 学长四川理工的?
    BuilderQiu
    BuilderQiu
    Aug 17, 2015
    12
    @df4VW
    @lizhiqing1996

    - - 看来校友还不少哦...
    odirus
    odirus
    Aug 17, 2015
    13
    @BuilderQiu 活捉几枚校友
    AlexaZhou
    AlexaZhou
    Aug 17, 2015❤️1
    14
    看起来不错,赞一个,已Star ~
    BuilderQiu
    BuilderQiu
    Aug 17, 2015
    15
    @odirus

    ...还真不少嗦。。
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    16
    @AlexaZhou 谢谢,看了上面那个的作品我才知道自己的有多差T_T
    jiyee
    jiyee
    Aug 17, 2015
    17
    浓浓的C语言气息。
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    18
    @BuilderQiu
    @df4VW
    @odirus

    你们都是什么专业的?
    odirus
    odirus
    Aug 17, 2015
    19
    @lizhiqing1996 机械设计,现在码农
    ijse
    ijse
    Aug 17, 2015
    20
    兼容性允许的话,纯CSS3也可以实现的~~
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    21
    @jiyee 主要是没怎么写过js
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    22
    @ijse 那都是大神干的事了,我这种css2都用不好的还是看看就行了
    gsanidt
    gsanidt
    Aug 17, 2015
    23
    又一个SUSE的
    BuilderQiu
    BuilderQiu
    Aug 17, 2015
    24
    @lizhiqing1996

    又软又贱那个专业
    spring5413
    spring5413
    Aug 17, 2015❤️1
    25
    个人建议:
    1.使用面向对象方式来写,写一个 Printer 类,每次 new 一下就行了
    2.不要单独设置配置项,最好是能实现 obj 参数传递
    仅是个人建议!不过效果还是挺好的
    Wangxf
    Wangxf
    Aug 17, 2015
    26
    也写了一个
    <div id='mydiv'></div>
    <script>
    str='hello,V2EX';
    function print (str,conId,speed ){
    var oconId=document.getElementById (conId );
    var strs=str.split ('');
    var count=0,timer=null;
    timer=setInterval (function (){
    if (count==strs.length ){clearInterval (timer );return}
    var letterNode=document.createTextNode (strs[count]);
    oconId.appendChild (letterNode );
    count++;
    },speed )
    }
    print (str,'mydiv',60 );
    </script>
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    27
    @spring5413 谢谢建议,没怎么写过 js ,不知道怎么用 js 写类,等下去看看,我最开始就是用参数传递的方式写的,不过考虑到参数太多就改成配置这种了,还是等下去看看有没有更好的方法
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    28
    @Wangxf 比我刚开始写那个好很多,我写那个连参数传递都没有,直接在函数里调用的
    hippoboy
    hippoboy
    Aug 17, 2015
    29
    这个写的挺好
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    30
    @hippoboy 谢谢夸奖
    eoo
    eoo
    Aug 17, 2015 via Android❤️1
    31
    下面这个不是很简单吗?

    <html>
    <head>
    <title>Js 实现逐字在网页上打印文字</title>
    <script language="javascript">
    text = "Js 实现逐字在网页上打印文字";
    i = 0;
    function type (){
    str = text.substr (0,i );
    txt.innerHTML = str + "_";
    i++;
    if (i>text.length ){
    i=0;
    //return 加入则 text 显示完后,停止。
    }
    setTimeout ("type ()",300 );
    }

    </script>
    </head>
    <body onLoad="type ()">
    <div id="txt"></div>
    </body>
    </html>
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    32
    @eoo 你这是打脸啊!不过效果有点不一样吧,我不想要文字后面一直跟着光标那种效果
    eoo
    eoo
    Aug 17, 2015 via Android
    33
    @lizhiqing1996

    txt.innerHTML = str + "_";

    改成

    txt.innerHTML = str

    就好了啊;
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    34
    @eoo 我的意思是"_"要若隐若现地出现在文字后面,一会儿有一会儿没有那种
    zythum
    zythum
    Aug 17, 2015
    35
    不错。接下来看些 api 设计和简单的设计模式吧。

    25 楼 @spring5413 说的很有道理。
    Kilerd
    Kilerd
    Aug 17, 2015❤️1
    36
    echo You can browse more from zhiqing.ingo

    厉害,自己的域名都打错了
    void1900
    void1900
    Aug 17, 2015
    37
    "line1\n\
    line2\n\
    line3\n\
    line4"

    js 字符串换行方法 每行结尾加 \
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    38
    @zythum 嗯嗯,谢谢
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    39
    @Kilerd 没有注意到....
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    40
    @void1900 哦哦,我就说怎么直接换行不行
    orcusfox
    orcusfox
    Aug 17, 2015❤️1
    41
    强迫症发作提了个 pr ,给重构了下。
    youchoudeyu
    youchoudeyu
    Aug 17, 2015
    42
    貌似有个东西叫 typed.js
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    43
    @napsterwu 比我那个好多了,已合并
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    44
    @youchoudeyu 我刚刚也看到了,好像还有个叫 typing 的
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    45
    @napsterwu 不会用 github ,貌似已经把源码搞乱了。。。。
    orcusfox
    orcusfox
    Aug 17, 2015
    46
    不是可以一键合吗,你把所有<<<<<<< HEAD 或者=========中间的内容,一份是你的 一份是我的,看好了删就行了
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    47
    @napsterwu 哦哦,懂了
    vmebeh
    vmebeh
    Aug 17, 2015❤️1
    48
    演示的“ Console ”没有垂直居中

    版本 44.0.2403.155 m
    Google Chrome 已是最新版本。
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    49
    @vmebeh 哦哦,这个好像是字体问题,等下改改
    julijulilijuliju
    julijulilijuliju
    Aug 17, 2015 via Android
    50
    Awesome 就是棒棒哒!
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    51
    @julijulilijuliju 什么东西
    julijulilijuliju
    julijulilijuliju
    Aug 17, 2015 via Android
    52
    @lizhiqing1996 Hmm, 就是看大家的合作很暖和的意思,楼主给人一种火星访客的赶脚,而且好认真的样子, hmmmm, 像我!
    fhefh
    fhefh
    Aug 17, 2015
    53
    mark ~
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    54
    @julijulilijuliju 之前确实很少来这些地方,
    pandada8
    pandada8
    Aug 17, 2015❤️1
    55
    demo 字体 fallback 可以考虑改成 monospace , linux 和 mac 底下直接炸了
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    56
    @pandada8 感觉用 monospace 在 linux 下偏大,字体调小后在 windows 上又偏小...感觉做前端的好累
    pandada8
    pandada8
    Aug 17, 2015
    57
    @lizhiqing1996 linux 用户大约都有一套自己配置好的 fontconfig ,反正不管怎么说 sans-serif 作为终端的 fallback 字体未免有些过不去
    lizhiqing1996
    lizhiqing1996
    OP
    Aug 17, 2015
    58
    @pandada8 嗯嗯,已经改成 monospace ,之前一直在 windows 上弄的,不知道 linux 下什么效果
    kn007
    kn007
    Aug 17, 2015
    59
    *
    nor
    nor
    Aug 17, 2015
    60
    star 以示支持。
    mingyun
    mingyun
    Aug 30, 2015
    61
    star
    HDMXXXX
    HDMXXXX
    Feb 22, 2017
    62
    本来想提个建议的,可是注册后等了两个多小时。

    哎。。
    我觉得网上评论系统最好的莫过于多玩图库下面的,直接就可以回复,游客显示 ip 或者所在地之类的。
    每天回复量不少,也没见过有广告什么的。

    但是大多数网站都是各种烦,登陆,注册,等待等待等待。

    这样是为了什么实在想不通,一系列的东西为了防止广告,机器等等,但是对用户也变得很不友好。

    T i p :上面纯属发牢骚,请无视。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1560 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 77ms · UTC 13:53 · PVG 21:53 · LAX 05:53 · JFK 08:53
    ♥ Do have faith in what you're doing.