This website requires JavaScript.

canvas 模拟终端展示

2018.04.11 11:06字数 24944阅读 409喜欢 0评论 0
<!doctype html>
<html>

<head>
    <title> HTML5 实现的终端输入效果</title>
    <style>
        html,
        body {
            margin: 0;
            padding: 0;
        }
    </style>
</head>

<body>
    <canvas id="c" width="1000" height="900"></canvas>
    <div id="script" style="display: none;">
        ouyang90:public ouyang90$ gulp build
        [10:56:23] Using gulpfile ~/Documents/etc/ruhu/public/gulpfile.js
        [10:56:23] Starting 'build'...
        [10:56:23] Starting 'build:js'...
        [10:56:38] [webpack:build-js] Hash: 18cf3cecbcd75acfcad1
        Version: webpack 2.6.1
        Time: 14818ms
                                              Asset       Size  Chunks  Chunk Names
                   static/js/manifest_85891da7a5.js     208 kB      18  [emitted]  manifest
            static/js/slow-apply-user_a0e0a1c70d.js     112 kB       0  [emitted]  slow-apply-user
            static/js/past-apply-user_4920ae9127.js     109 kB       2  [emitted]  past-apply-user
                static/js/slow-result_294eafad55.js     103 kB       3  [emitted]  slow-result
        static/js/past-result-address_9b82c8b297.js     101 kB       4  [emitted]  past-result-address
               static/js/fresh-result_41ce6c9b31.js     103 kB       5  [emitted]  fresh-result
         static/js/slow-apply-user-up_0f71b2dc9f.js     5.8 kB       6  [emitted]  slow-apply-user-up
                       static/js/past_1e4579b7cf.js    2.21 kB       7  [emitted]  past
                static/js/past-result_f2c8427e7b.js    2.93 kB       8  [emitted]  past-result
         static/js/past-result-refund_e89cd08e76.js  427 bytes       9  [emitted]  past-result-refund
            static/js/past-result-pay_5a5a9f2af9.js  604 bytes      10  [emitted]  past-result-pay
                 static/js/past-apply_bb81ac1237.js    1.85 kB      11  [emitted]  past-apply
         static/js/past-apply-success_35ca96bf6f.js  268 bytes      12  [emitted]  past-apply-success
             static/js/past-apply-pay_1c8f2713bc.js  546 bytes      13  [emitted]  past-apply-pay
                      static/js/login_28b606ccba.js    2.69 kB      14  [emitted]  login
                       static/js/list_ca2c69316c.js    1.96 kB      15  [emitted]  list
                      static/js/index_4dcfa3adaa.js  384 bytes      16  [emitted]  index
        static/js/fresh-apply-user-up_26fbbe6a48.js    5.35 kB      17  [emitted]  fresh-apply-user-up
           static/js/fresh-apply-user_8e36b37182.js     111 kB       1  [emitted]  fresh-apply-user
                           fresh-apply-user-up.html    9.13 kB          [emitted]
                              fresh-apply-user.html      11 kB          [emitted]
                                  fresh-result.html    29.7 kB          [emitted]
                                         index.html    1.56 kB          [emitted]
                                          list.html    3.08 kB          [emitted]
                                         login.html    1.82 kB          [emitted]
                                past-apply-pay.html    2.57 kB          [emitted]
                            past-apply-success.html    1.52 kB          [emitted]
                               past-apply-user.html    9.24 kB          [emitted]
                                    past-apply.html     6.7 kB          [emitted]
                           past-result-address.html    3.11 kB          [emitted]
                               past-result-pay.html     4.2 kB          [emitted]
                            past-result-refund.html    2.92 kB          [emitted]
                                   past-result.html    13.5 kB          [emitted]
                                          past.html    4.86 kB          [emitted]
                            slow-apply-user-up.html    10.9 kB          [emitted]
                               slow-apply-user.html    10.9 kB          [emitted]
                                   slow-result.html    26.7 kB          [emitted]
        chunk    {0} static/js/slow-apply-user_a0e0a1c70d.js (slow-apply-user) 202 kB {18} [initial] [rendered]
            [3] ./src/lib/data/city.js 155 kB {0} {1} {2} {3} {4} {5} [built]
            [4] ./src/components/picker.vue 1.63 kB {0} {1} {2} {3} {4} {5} [built]
            [5] ./src/lib/plug-in/scroll.js 8.26 kB {0} {1} {2} {3} {4} {5} [built]
            [6] ./src/lib/plug-in/utils.js 2.9 kB {0} {1} {2} {3} {4} {5} [built]
            [7] ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/picker.vue 5.34 kB {0} {1} {2} {3} {4} {5} [built]
            [8] ./~/vue-loader/lib/template-compiler.js?id=data-v-22fe324a!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/picker.vue 2.68 kB {0} {1} {2} {3} {4} {5} [built]
            [9] ./src/components/datetime-picker.vue 1.67 kB {0} {1} {2} [built]
           [10] ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/datetime-picker.vue 5.89 kB {0} {1} {2} [built]
           [11] ./~/vue-loader/lib/template-compiler.js?id=data-v-f45777d8!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/datetime-picker.vue 3.07 kB {0} {1} {2} [built]
           [12] ./src/lib/data/degree.js 133 bytes {0} {1} [built]
           [13] ./src/lib/data/education.js 111 bytes {0} {1} [built]
           [31] ./src/pages/slow-apply-user.js 15.7 kB {0} [built]
        chunk    {1} static/js/fresh-apply-user_8e36b37182.js (fresh-apply-user)201 kB {18} [initial] [rendered]
            [3] ./src/lib/data/city.js 155 kB {0} {1} {2} {3} {4} {5} [built]
            [4] ./src/components/picker.vue 1.63 kB {0} {1} {2} {3} {4} {5} [built]
            [5] ./src/lib/plug-in/scroll.js 8.26 kB {0} {1} {2} {3} {4} {5} [built]
            [6] ./src/lib/plug-in/utils.js 2.9 kB {0} {1} {2} {3} {4} {5} [built]
            [7] ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/picker.vue 5.34 kB {0} {1} {2} {3} {4} {5} [built]
            [8] ./~/vue-loader/lib/template-compiler.js?id=data-v-22fe324a!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/picker.vue 2.68 kB {0} {1} {2} {3} {4} {5} [built]
            [9] ./src/components/datetime-picker.vue 1.67 kB {0} {1} {2} [built]
           [10] ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/datetime-picker.vue 5.89 kB {0} {1} {2} [built]
           [11] ./~/vue-loader/lib/template-compiler.js?id=data-v-f45777d8!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/datetime-picker.vue 3.07 kB {0} {1} {2} [built]
           [12] ./src/lib/data/degree.js 133 bytes {0} {1} [built]
           [13] ./src/lib/data/education.js 111 bytes {0} {1} [built]
           [16] ./src/pages/fresh-apply-user.js 14.8 kB {1} [built]
        chunk    {2} static/js/past-apply-user_4920ae9127.js (past-apply-user) 196 kB {18} [initial] [rendered]
            [3] ./src/lib/data/city.js 155 kB {0} {1} {2} {3} {4} {5} [built]
            [4] ./src/components/picker.vue 1.63 kB {0} {1} {2} {3} {4} {5} [built]
            [5] ./src/lib/plug-in/scroll.js 8.26 kB {0} {1} {2} {3} {4} {5} [built]
            [6] ./src/lib/plug-in/utils.js 2.9 kB {0} {1} {2} {3} {4} {5} [built]
            [7] ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/picker.vue 5.34 kB {0} {1} {2} {3} {4} {5} [built]
            [8] ./~/vue-loader/lib/template-compiler.js?id=data-v-22fe324a!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/picker.vue 2.68 kB {0} {1} {2} {3} {4} {5} [built]
            [9] ./src/components/datetime-picker.vue 1.67 kB {0} {1} {2} [built]
           [10] ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/datetime-picker.vue 5.89 kB {0} {1} {2} [built]
           [11] ./~/vue-loader/lib/template-compiler.js?id=data-v-f45777d8!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/datetime-picker.vue 3.07 kB {0} {1} {2} [built]
           [23] ./src/pages/past-apply-user.js 10.1 kB {2} [built]
        chunk    {3} static/js/slow-result_294eafad55.js (slow-result) 185 kB {18} [initial] [rendered]
            [3] ./src/lib/data/city.js 155 kB {0} {1} {2} {3} {4} {5} [built]
            [4] ./src/components/picker.vue 1.63 kB {0} {1} {2} {3} {4} {5} [built]
            [5] ./src/lib/plug-in/scroll.js 8.26 kB {0} {1} {2} {3} {4} {5} [built]
            [6] ./src/lib/plug-in/utils.js 2.9 kB {0} {1} {2} {3} {4} {5} [built]
            [7] ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/picker.vue 5.34 kB {0} {1} {2} {3} {4} {5} [built]
            [8] ./~/vue-loader/lib/template-compiler.js?id=data-v-22fe324a!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/picker.vue 2.68 kB {0} {1} {2} {3} {4} {5} [built]
           [32] ./src/pages/slow-result.js 9.26 kB {3} [built]
        chunk    {4} static/js/past-result-address_9b82c8b297.js (past-result-address) 179 kB {18} [initial] [rendered]
            [3] ./src/lib/data/city.js 155 kB {0} {1} {2} {3} {4} {5} [built]
            [4] ./src/components/picker.vue 1.63 kB {0} {1} {2} {3} {4} {5} [built]
            [5] ./src/lib/plug-in/scroll.js 8.26 kB {0} {1} {2} {3} {4} {5} [built]
            [6] ./src/lib/plug-in/utils.js 2.9 kB {0} {1} {2} {3} {4} {5} [built]
            [7] ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/picker.vue 5.34 kB {0} {1} {2} {3} {4} {5} [built]
            [8] ./~/vue-loader/lib/template-compiler.js?id=data-v-22fe324a!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/picker.vue 2.68 kB {0} {1} {2} {3} {4} {5} [built]
           [25] ./src/pages/past-result-address.js 3.94 kB {4} [built]
        chunk    {5} static/js/fresh-result_41ce6c9b31.js (fresh-result) 185 kB {18} [initial] [rendered]
            [3] ./src/lib/data/city.js 155 kB {0} {1} {2} {3} {4} {5} [built]
            [4] ./src/components/picker.vue 1.63 kB {0} {1} {2} {3} {4} {5} [built]
            [5] ./src/lib/plug-in/scroll.js 8.26 kB {0} {1} {2} {3} {4} {5} [built]
            [6] ./src/lib/plug-in/utils.js 2.9 kB {0} {1} {2} {3} {4} {5} [built]
            [7] ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/picker.vue 5.34 kB {0} {1} {2} {3} {4} {5} [built]
            [8] ./~/vue-loader/lib/template-compiler.js?id=data-v-22fe324a!./~/vue-loader/lib/selector.js?type=template&index=0!./src/components/picker.vue 2.68 kB {0} {1} {2} {3} {4} {5} [built]
           [17] ./src/pages/fresh-result.js 10.1 kB {5} [built]
        chunk    {6} static/js/slow-apply-user-up_0f71b2dc9f.js (slow-apply-user-up) 12.5 kB {18} [initial] [rendered]
           [30] ./src/pages/slow-apply-user-up.js 12.5 kB {6} [built]
        chunk    {7} static/js/past_1e4579b7cf.js (past) 6.76 kB {18} [initial] [rendered]
           [29] ./src/pages/past.js 6.76 kB {7} [built]
        chunk    {8} static/js/past-result_f2c8427e7b.js (past-result) 5.59 kB {18} [initial] [rendered]
           [28] ./src/pages/past-result.js 5.59 kB {8} [built]
        chunk    {9} static/js/past-result-refund_e89cd08e76.js (past-result-refund) 580 bytes {18} [initial] [rendered]
           [27] ./src/pages/past-result-refund.js 580 bytes {9} [built]
        chunk   {10} static/js/past-result-pay_5a5a9f2af9.js (past-result-pay) 826 bytes {18} [initial] [rendered]
           [26] ./src/pages/past-result-pay.js 826 bytes {10} [built]
        chunk   {11} static/js/past-apply_bb81ac1237.js (past-apply) 3.23 kB {18} [initial] [rendered]
           [24] ./src/pages/past-apply.js 3.23 kB {11} [built]
        chunk   {12} static/js/past-apply-success_35ca96bf6f.js (past-apply-success) 315 bytes {18} [initial] [rendered]
           [22] ./src/pages/past-apply-success.js 315 bytes {12} [built]
        chunk   {13} static/js/past-apply-pay_1c8f2713bc.js (past-apply-pay) 814bytes {18} [initial] [rendered]
           [21] ./src/pages/past-apply-pay.js 814 bytes {13} [built]
        chunk   {14} static/js/login_28b606ccba.js (login) 5.43 kB {18} [initial] [rendered]
           [20] ./src/pages/login.js 5.43 kB {14} [built]
        chunk   {15} static/js/list_ca2c69316c.js (list) 6.16 kB {18} [initial] [rendered]
           [19] ./src/pages/list.js 6.16 kB {15} [built]
        chunk   {16} static/js/index_4dcfa3adaa.js (index) 757 bytes {18} [initial] [rendered]
           [18] ./src/pages/index.js 757 bytes {16} [built]
        chunk   {17} static/js/fresh-apply-user-up_26fbbe6a48.js (fresh-apply-user-up) 11.4 kB {18} [initial] [rendered]
           [15] ./src/pages/fresh-apply-user-up.js 11.4 kB {17} [built]
        chunk   {18} static/js/manifest_85891da7a5.js (manifest) 447 kB [entry] [rendered]
            [0] ./src/lib/utils.js 25.3 kB {18} [built]
            [1] ./~/vue/dist/vue.js 285 kB {18} [built]
            [2] ./src/lib/jquery/jquery.min.js 121 kB {18} [built]
           [14] (webpack)/buildin/global.js 509 bytes {18} [built]
           [33] ./~/process/browser.js 5.42 kB {18} [built]
           [34] ./~/setimmediate/setImmediate.js 6.47 kB {18} [built]
           [35] ./~/timers-browserify/main.js 1.9 kB {18} [built]
           [36] (webpack)/buildin/amd-options.js 82 bytes {18} [built]
           [37] (webpack)/buildin/module.js 517 bytes {18} [built]
        Child html-webpack-plugin for "fresh-apply-user-up.html":
                               Asset    Size  Chunks  Chunk Names
            fresh-apply-user-up.html  554 kB       0
            chunk    {0} fresh-apply-user-up.html 551 kB [entry] [rendered]
                [0] ./~/lodash/lodash.js 540 kB {0} [built]
                [1] ./~/html-webpack-plugin/lib/loader.js!./src/views/fresh-apply-user-up.html 10.5 kB {0} [built]
                [2] (webpack)/buildin/global.js 509 bytes {0} [built]
                [3] (webpack)/buildin/module.js 517 bytes {0} [built]
        Child html-webpack-plugin for "index.html":
                 Asset    Size  Chunks  Chunk Names
            index.html  546 kB       0
            chunk    {0} index.html 543 kB [entry] [rendered]
                [0] ./~/lodash/lodash.js 540 kB {0} [built]
                [1] ./~/html-webpack-plugin/lib/loader.js!./src/views/index.html2.24 kB {0} [built]
                [2] (webpack)/buildin/global.js 509 bytes {0} [built]
                [3] (webpack)/buildin/module.js 517 bytes {0} [built]
        Child html-webpack-plugin for "fresh-result.html":
                        Asset    Size  Chunks  Chunk Names
            fresh-result.html  577 kB       0
            chunk    {0} fresh-result.html 574 kB [entry] [rendered]
                [0] ./~/lodash/lodash.js 540 kB {0} [built]
                [1] ./~/html-webpack-plugin/lib/loader.js!./src/views/fresh-result.html 33.2 kB {0} [built]
                [2] (webpack)/buildin/global.js 509 bytes {0} [built]
                [3] (webpack)/buildin/module.js 517 bytes {0} [built]
        Child html-webpack-plugin for "list.html":
                Asset    Size  Chunks  Chunk Names
            list.html  548 kB       0
            chunk    {0} list.html 545 kB [entry] [rendered]
                [0] ./~/lodash/lodash.js 540 kB {0} [built]
                [1] ./~/html-webpack-plugin/lib/loader.js!./src/views/list.html 4.12 kB {0} [built]
                [2] (webpack)/buildin/global.js 509 bytes {0} [built]
                [3] (webpack)/buildin/module.js 517 bytes {0} [built]
        Child html-webpack-plugin for "fresh-apply-user.html":
                            Asset    Size  Chunks  Chunk Names
            fresh-apply-user.html  555 kB       0
            chunk    {0} fresh-apply-user.html 552 kB [entry] [rendered]
                [0] ./~/lodash/lodash.js 540 kB {0} [built]
                [1] ./~/html-webpack-plugin/lib/loader.js!./src/views/fresh-apply-user.html 11.6 kB {0} [built]
                [2] (webpack)/buildin/global.js 509 bytes {0} [built]
                [3] (webpack)/buildin/module.js 517 bytes {0} [built]
        Child html-webpack-plugin for "past-apply-success.html":
                              Asset    Size  Chunks  Chunk Names
            past-apply-success.html  546 kB       0
            chunk    {0} past-apply-success.html 542 kB [entry] [rendered]
                [0] ./~/lodash/lodash.js 540 kB {0} [built]
                [1] ./~/html-webpack-plugin/lib/loader.js!./src/views/past-apply-success.html 1.83 kB {0} [built]
                [2] (webpack)/buildin/global.js 509 bytes {0} [built]
                [3] (webpack)/buildin/module.js 517 bytes {0} [built]
        Child html-webpack-plugin for "login.html":
                 Asset    Size  Chunks  Chunk Names
            login.html  546 kB       0
            chunk    {0} login.html 543 kB [entry] [rendered]
                [0] ./~/lodash/lodash.js 540 kB {0} [built]
                [1] ./~/html-webpack-plugin/lib/loader.js!./src/views/login.html2.09 kB {0} [built]
                [2] (webpack)/buildin/global.js 509 bytes {0} [built]
                [3] (webpack)/buildin/module.js 517 bytes {0} [built]
        Child html-webpack-plugin for "past-apply-pay.html":
                          Asset    Size  Chunks  Chunk Names
            past-apply-pay.html  547 kB       0
            chunk    {0} past-apply-pay.html 544 kB [entry] [rendered]
                [0] ./~/lodash/lodash.js 540 kB {0} [built]
                [1] ./~/html-webpack-plugin/lib/loader.js!./src/views/past-apply-pay.html 2.92 kB {0} [built]
                [2] (webpack)/buildin/global.js 509 bytes {0} [built]
                [3] (webpack)/buildin/module.js 517 bytes {0} [built]
        Child html-webpack-plugin for "past-apply-user.html":
                           Asset    Size  Chunks  Chunk Names
            past-apply-user.html  554 kB       0
            chunk    {0} past-apply-user.html 551 kB [entry] [rendered]
                [0] ./~/lodash/lodash.js 540 kB {0} [built]
                [1] ./~/html-webpack-plugin/lib/loader.js!./src/views/past-apply-user.html 10.6 kB {0} [built]
                [2] (webpack)/buildin/global.js 509 bytes {0} [built]
                [3] (webpack)/buildin/module.js 517 bytes {0} [built]
        Child html-webpack-plugin for "past-result-pay.html":
                           Asset    Size  Chunks  Chunk Names
            past-result-pay.html  548 kB       0
            chunk    {0} past-result-pay.html 545 kB [entry] [rendered]
                [0] ./~/lodash/lodash.js 540 kB {0} [built]
                [1] ./~/html-webpack-plugin/lib/loader.js!./src/views/past-result-pay.html 4.5 kB {0} [built]
                [2] (webpack)/buildin/global.js 509 bytes {0} [built]
                [3] (webpack)/buildin/module.js 517 bytes {0} [built]
        Child html-webpack-plugin for "past-result-refund.html":
                              Asset    Size  Chunks  Chunk Names
            past-result-refund.html  547 kB       0
            chunk    {0} past-result-refund.html 544 kB [entry] [rendered]
                [0] ./~/lodash/lodash.js 540 kB {0} [built]
                [1] ./~/html-webpack-plugin/lib/loader.js!./src/views/past-result-refund.html 3.25 kB {0} [built]
                [2] (webpack)/buildin/global.js 509 bytes {0} [built]
                [3] (webpack)/buildin/module.js 517 bytes {0} [built]
        Child html-webpack-plugin for "past-result-address.html":
                               Asset    Size  Chunks  Chunk Names
            past-result-address.html  547 kB       0
            chunk    {0} past-result-address.html 544 kB [entry] [rendered]
                [0] ./~/lodash/lodash.js 540 kB {0} [built]
                [1] ./~/html-webpack-plugin/lib/loader.js!./src/views/past-result-address.html 3.52 kB {0} [built]
                [2] (webpack)/buildin/global.js 509 bytes {0} [built]
                [3] (webpack)/buildin/module.js 517 bytes {0} [built]
        Child html-webpack-plugin for "past-apply.html":
                      Asset    Size  Chunks  Chunk Names
            past-apply.html  551 kB       0
            chunk    {0} past-apply.html 548 kB [entry] [rendered]
                [0] ./~/lodash/lodash.js 540 kB {0} [built]
                [1] ./~/html-webpack-plugin/lib/loader.js!./src/views/past-apply.html 7.11 kB {0} [built]
                [2] (webpack)/buildin/global.js 509 bytes {0} [built]
                [3] (webpack)/buildin/module.js 517 bytes {0} [built]
        Child html-webpack-plugin for "slow-apply-user.html":
                           Asset    Size  Chunks  Chunk Names
            slow-apply-user.html  556 kB       0
            chunk    {0} slow-apply-user.html 552 kB [entry] [rendered]
                [0] ./~/lodash/lodash.js 540 kB {0} [built]
                [1] ./~/html-webpack-plugin/lib/loader.js!./src/views/slow-apply-user.html 11.9 kB {0} [built]
                [2] (webpack)/buildin/global.js 509 bytes {0} [built]
                [3] (webpack)/buildin/module.js 517 bytes {0} [built]
        Child html-webpack-plugin for "past-result.html":
                       Asset    Size  Chunks  Chunk Names
            past-result.html  559 kB       0
            chunk    {0} past-result.html 556 kB [entry] [rendered]
                [0] ./~/lodash/lodash.js 540 kB {0} [built]
                [1] ./~/html-webpack-plugin/lib/loader.js!./src/views/past-result.html 15 kB {0} [built]
                [2] (webpack)/buildin/global.js 509 bytes {0} [built]
                [3] (webpack)/buildin/module.js 517 bytes {0} [built]
        Child html-webpack-plugin for "slow-apply-user-up.html":
                              Asset    Size  Chunks  Chunk Names
            slow-apply-user-up.html  556 kB       0
            chunk    {0} slow-apply-user-up.html 553 kB [entry] [rendered]
                [0] ./~/lodash/lodash.js 540 kB {0} [built]
                [1] ./~/html-webpack-plugin/lib/loader.js!./src/views/slow-apply-user-up.html 12.3 kB {0} [built]
                [2] (webpack)/buildin/global.js 509 bytes {0} [built]
                [3] (webpack)/buildin/module.js 517 bytes {0} [built]
        Child html-webpack-plugin for "past.html":
                Asset    Size  Chunks  Chunk Names
            past.html  550 kB       0
            chunk    {0} past.html 547 kB [entry] [rendered]
                [0] ./~/lodash/lodash.js 540 kB {0} [built]
                [1] ./~/html-webpack-plugin/lib/loader.js!./src/views/past.html 6.5 kB {0} [built]
                [2] (webpack)/buildin/global.js 509 bytes {0} [built]
                [3] (webpack)/buildin/module.js 517 bytes {0} [built]
        Child html-webpack-plugin for "slow-result.html":
                       Asset    Size  Chunks  Chunk Names
            slow-result.html  577 kB       0
            chunk    {0} slow-result.html 574 kB [entry] [rendered]
                [0] ./~/lodash/lodash.js 540 kB {0} [built]
                [1] ./~/html-webpack-plugin/lib/loader.js!./src/views/slow-result.html 33.2 kB {0} [built]
                [2] (webpack)/buildin/global.js 509 bytes {0} [built]
                [3] (webpack)/buildin/module.js 517 bytes {0} [built]
        [10:56:38] Finished 'build:js' after 15 s
        [10:56:38] Starting 'copy:images'...
        [10:56:38] Starting 'build:css'...
        [10:56:38] Finished 'build:css' after 622 ms
        [10:56:38] Finished 'copy:images' after 707 ms
        [10:56:38] Starting 'md5:css'...
        [10:56:38] Finished 'md5:css' after 137 ms
        [10:56:38] Finished 'build' after 16 s
        ouyang90:public ouyang90$
    </div>
    <script>
        var b = document.body;
        var c = document.getElementById('c');
        var a = c.getContext('2d');

        var S = document.getElementById("script").innerHTML.split("\n"),
            so = 0,
            fs = "fillStyle",
            lo = 1,
            ln = "length",
            clo = 1,
            lh = 22;

        c.width = window.innerWidth;
        c.height = window.innerHeight;

        a.textBaseline = "top";
        a.font = "14px Arial";

        x = setInterval(function () {
            a[fs] = "rgba(205,205,205,0.5)";

            S.forEach(function (v, i) {
                if (i <= lo) {
                    if (i == lo) {
                        a.fillText(v.substr(so, 1), 10 + a.measureText(v.substr(0, so)).width, 10 + (clo - 1) * lh);
                    }
                }
            });

            so++;
            if (so > S[lo][ln]) {
                lo++;
                clo++;
                so = 0;
            }
            if (clo * lh > innerHeight - 100) {
                clo = 1;
                a.clearRect(0, 0, c.width, c.height);
            }
            if (lo >= S[ln] - 1) {
                window.clearInterval(x);
            }
        }, 25);
    </script>

</body>

</html>