美文网首页前端攻城狮Web前端之路让前端飞
[JS插件]酷炫的打字机效果: Typed.js

[JS插件]酷炫的打字机效果: Typed.js

作者: 熠辉web3 | 来源:发表于2017-09-27 19:46 被阅读206次

    一. Type.js效果演示

    typedJS.gif

    Type.js是一个轻量级的插件, 用于实现页面文字的打字机效果. 它使用起来非常简单, 只需要几行代码就能实现高大上的打字机效果.

    二. 使用Type.js

    1. 引入Type.js

    • 方法1: ES6模块化引入(官方推荐)
    //npm下载
    npm install typed.js
    
    //在js文件中用模块的方式引入
    import Typed from 'typed.js';
    

    采用该方法导入type.js需要使用Babel, 否则浏览器不能识别ES6的语法. 如果只是练手, 推荐使用下面的方法.

    • 方法2: 常规导入
    //script标签导入
    <script src="./typed.js"></script>
    
    //cdn导入
      <script src="https://cdn.bootcss.com/typed.js/2.0.5/typed.js"></script>
    

    2. 实例化对象

     <span class="element"></span> //目标容器
    
     <script>
        var typed = new Typed('.element', {
          strings: ["纠正一个错误的方法有很多", "而解决一个错误的终极方法,就是不给它发生的机会。"], //输入内容, 支持html标签
          typeSpeed: 100, //打字速度
          backSpeed: 50 //回退速度
        });
    </script>
    

    如果想加入鼠标闪烁效果, 引入一下样式

        .typed-cursor{
          opacity: 1;
          -webkit-animation: blink 0.7s infinite;
          -moz-animation: blink 0.7s infinite;
          animation: blink 0.7s infinite;
        }
        @keyframes blink{
            0% { opacity:1; }
            50% { opacity:0; }
            100% { opacity:1; }
        }
        @-webkit-keyframes blink{
            0% { opacity:1; }
            50% { opacity:0; }
            100% { opacity:1; }
        }
        @-moz-keyframes blink{
            0% { opacity:1; }
            50% { opacity:0; }
            100% { opacity:1; }
        }
    

    3. 效果演示

    效果演示

    三 其他配置参数

    var typed = new Typed(".element", {
      /**
       * @property {array} strings strings to be typed
       * @property {string} stringsElement ID of element containing string children
       */
      strings: ['These are the default values...', 'You know what you should do?', 'Use your own!', 'Have a great day!'],
      stringsElement: null,
    
      /**
       * @property {number} typeSpeed type speed in milliseconds
       */
      typeSpeed: 0,
    
      /**
       * @property {number} startDelay time before typing starts in milliseconds
       */
      startDelay: 0,
    
      /**
       * @property {number} backSpeed backspacing speed in milliseconds
       */
      backSpeed: 0,
    
      /**
       * @property {boolean} smartBackspace only backspace what doesn't match the previous string
       */
      smartBackspace: true,
    
      /**
       * @property {boolean} shuffle shuffle the strings
       */
      shuffle: false,
    
      /**
       * @property {number} backDelay time before backspacing in milliseconds
       */
      backDelay: 700,
    
      /**
       * @property {boolean} fadeOut Fade out instead of backspace
       * @property {string} fadeOutClass css class for fade animation
       * @property {boolean} fadeOutDelay Fade out delay in milliseconds
       */
      fadeOut: false,
      fadeOutClass: 'typed-fade-out',
      fadeOutDelay: 500,
    
      /**
       * @property {boolean} loop loop strings
       * @property {number} loopCount amount of loops
       */
      loop: false,
      loopCount: Infinity,
    
      /**
       * @property {boolean} showCursor show cursor
       * @property {string} cursorChar character for cursor
       * @property {boolean} autoInsertCss insert CSS for cursor and fadeOut into HTML <head>
       */
      showCursor: true,
      cursorChar: '|',
      autoInsertCss: true,
    
      /**
       * @property {string} attr attribute for typing
       * Ex: input placeholder, value, or just HTML text
       */
      attr: null,
    
      /**
       * @property {boolean} bindInputFocusEvents bind to focus and blur if el is text input
       */
      bindInputFocusEvents: false,
    
      /**
       * @property {string} contentType 'html' or 'null' for plaintext
       */
      contentType: 'html',
    
      /**
       * All typing is complete
       * @param {Typed} self
       */
      onComplete: (self) => {},
    
      /**
       * Before each string is typed
       * @param {number} arrayPos
       * @param {Typed} self
       */
      preStringTyped: (arrayPos, self) => {},
    
      /**
       * After each string is typed
       * @param {number} arrayPos
       * @param {Typed} self
       */
      onStringTyped: (arrayPos, self) => {},
    
      /**
       * During looping, after last string is typed
       * @param {Typed} self
       */
      onLastStringBackspaced: (self) => {},
    
      /**
       * Typing has been stopped
       * @param {number} arrayPos
       * @param {Typed} self
       */
      onTypingPaused: (arrayPos, self) => {},
    
      /**
       * Typing has been started after being stopped
       * @param {number} arrayPos
       * @param {Typed} self
       */
      onTypingResumed: (arrayPos, self) => {},
    
      /**
       * After reset
       * @param {Typed} self
       */
      onReset: (self) => {},
    
      /**
       * After stop
       * @param {number} arrayPos
       * @param {Typed} self
       */
      onStop: (arrayPos, self) => {},
    
      /**
       * After start
       * @param {number} arrayPos
       * @param {Typed} self
       */
      onStart: (arrayPos, self) => {},
    
      /**
       * After destroy
       * @param {Typed} self
       */
      onDestroy: (self) => {}
    });
    

    【参考资料】

    1. Type.js官网: http://www.mattboldt.com/demos/typed-js/
    2. Github文档地址:https://github.com/mattboldt/typed.js/
    3. CDN地址:http://www.bootcdn.cn/typed.js/

    相关文章

      网友评论

      • 神的指纹:第一个参数要填空才可以,不然第一句不能显示。另外想问一下,怎么样它连续输入不回删呢?

      本文标题:[JS插件]酷炫的打字机效果: Typed.js

      本文链接:https://www.haomeiwen.com/subject/osxpextx.html