想在这个页面上插入一个或一个区域实现文字的逐字显示且能实现分行、缩进。
这是云盘连接网页效果代码都已打包  师哥师姐们打开看一下就行!!谢谢
http://pan.baidu.com/s/19reu9

解决方案 »

  1.   

    弄个浮动层浮动在canvas上就行了吧
    <html><head><style>html, body {
      height: 100%;
      padding: 0;
      margin: 0;
      background: #000;
    }
    canvas {
      position: absolute;
      width: 100%;
      height: 100%;
    }
    #word{position:absolute;color:White;top:25%;left:40%;width:20%;height:50%;z-index:10000}
    </style></head><body>
    <div id="word"></div>
    <canvas id="pinkboard" width="581" height="316"></canvas>
    <script type="text/javascript">
        function type(txt) {        var text = "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890";
            var textLen = text.length;
            var lineNum = 30; //定义每行显示多少个字
            var num = 0;
            var _ = document.createTextNode('_');
            var i = 0;
            var me = this;
            this.show = function () {
                str = text.substr(i, 1);
                var txt = document.getElementById('word');
                txt.appendChild(document.createTextNode(str));
                txt.appendChild(_);            num++;
                if (num > 0 && num % lineNum == 0) txt.appendChild(document.createElement('br'));            i++;
                if (i < textLen) setTimeout(function () { me.show() }, 300); else txt.removeChild(_);
            }
            this.show();
        }
        new type(document.getElementById('word'));
    var settings = {
      particles: {
        length:   500, // maximum amount of particles
        duration:   2, // particle duration in sec
        velocity: 100, // particle velocity in pixels/sec
        effect: -0.75, // play with this for a nice effect
        size:      30//, // particle size in pixels
      }//,
    };/*
     * RequestAnimationFrame polyfill by Erik M?ller
     */
    (function(){var b=0;var c=["ms","moz","webkit","o"];for(var a=0;a<c.length&&!window.requestAnimationFrame;++a){window.requestAnimationFrame=window[c[a]+"RequestAnimationFrame"];window.cancelAnimationFrame=window[c[a]+"CancelAnimationFrame"]||window[c[a]+"CancelRequestAnimationFrame"]}if(!window.requestAnimationFrame){window.requestAnimationFrame=function(h,e){var d=new Date().getTime();var f=Math.max(0,16-(d-b));var g=window.setTimeout(function(){h(d+f)},f);b=d+f;return g}}if(!window.cancelAnimationFrame){window.cancelAnimationFrame=function(d){clearTimeout(d)}}}());/*
     * Point class
     */
    var Point = (function() {
      function Point(x, y) {
        this.x = (typeof x !== 'undefined') ? x : 0;
        this.y = (typeof y !== 'undefined') ? y : 0;
      }
      Point.prototype.clone = function() {
        return new Point(this.x, this.y);
      };
      Point.prototype.length = function(length) {
        if (typeof length == 'undefined')
          return Math.sqrt(this.x * this.x + this.y * this.y);
        this.normalize();
        this.x *= length;
        this.y *= length;
        return this;
      };
      Point.prototype.normalize = function() {
        var length = this.length();
        this.x /= length;
        this.y /= length;
        return this;
      };
      return Point;
    })();/*
     * Particle class
     */
    var Particle = (function() {
      function Particle() {
        this.position = new Point();
        this.velocity = new Point();
        this.acceleration = new Point();
        this.age = 0;
      }
      Particle.prototype.initialize = function(x, y, dx, dy) {
        this.position.x = x;
        this.position.y = y;
        this.velocity.x = dx;
        this.velocity.y = dy;
        this.acceleration.x = dx * settings.particles.effect;
        this.acceleration.y = dy * settings.particles.effect;
        this.age = 0;
      };
      Particle.prototype.update = function(deltaTime) {
        this.position.x += this.velocity.x * deltaTime;
        this.position.y += this.velocity.y * deltaTime;
        this.velocity.x += this.acceleration.x * deltaTime;
        this.velocity.y += this.acceleration.y * deltaTime;
        this.age += deltaTime;
      };
      Particle.prototype.draw = function(context, image) {
        function ease(t) {
          return (--t) * t * t + 1;
        }
        var size = image.width * ease(this.age / settings.particles.duration);
        context.globalAlpha = 1 - this.age / settings.particles.duration;
        context.drawImage(image, this.position.x - size / 2, this.position.y - size / 2, size, size);
      };
      return Particle;
    })();/*
     * ParticlePool class
     */
    var ParticlePool = (function() {
      var particles,
          firstActive = 0,
          firstFree   = 0,
          duration    = settings.particles.duration;
      
      function ParticlePool(length) {
        // create and populate particle pool
        particles = new Array(length);
        for (var i = 0; i < particles.length; i++)
          particles[i] = new Particle();
      }
      ParticlePool.prototype.add = function(x, y, dx, dy) {
        particles[firstFree].initialize(x, y, dx, dy);
        
        // handle circular queue
        firstFree++;
        if (firstFree   == particles.length) firstFree   = 0;
        if (firstActive == firstFree       ) firstActive++;
        if (firstActive == particles.length) firstActive = 0;
      };
      ParticlePool.prototype.update = function(deltaTime) {
        var i;
        
        // update active particles
        if (firstActive < firstFree) {
          for (i = firstActive; i < firstFree; i++)
            particles[i].update(deltaTime);
        }
        if (firstFree < firstActive) {
          for (i = firstActive; i < particles.length; i++)
            particles[i].update(deltaTime);
          for (i = 0; i < firstFree; i++)
            particles[i].update(deltaTime);
        }
        
        // remove inactive particles
        while (particles[firstActive].age >= duration && firstActive != firstFree) {
          firstActive++;
          if (firstActive == particles.length) firstActive = 0;
        }
        
        
      };
      ParticlePool.prototype.draw = function(context, image) {
        // draw active particles
        if (firstActive < firstFree) {
          for (i = firstActive; i < firstFree; i++)
            particles[i].draw(context, image);
        }
        if (firstFree < firstActive) {
          for (i = firstActive; i < particles.length; i++)
            particles[i].draw(context, image);
          for (i = 0; i < firstFree; i++)
            particles[i].draw(context, image);
        }
      };
      return ParticlePool;
    })();/*
     * Putting it all together
     */
    (function (canvas) {
        var context = canvas.getContext('2d'),
          particles = new ParticlePool(settings.particles.length),
          particleRate = settings.particles.length / settings.particles.duration, // particles/sec
          time;    // get point on heart with -PI <= t <= PI
        function pointOnHeart(t) {
            return new Point(
          160 * Math.pow(Math.sin(t), 3),
          130 * Math.cos(t) - 50 * Math.cos(2 * t) - 20 * Math.cos(3 * t) - 10 * Math.cos(4 * t) + 25
        );
        }    // creating the particle image using a dummy canvas
        var image = (function () {
            var canvas = document.createElement('canvas'),
            context = canvas.getContext('2d');
            canvas.width = settings.particles.size;
            canvas.height = settings.particles.size;
            // helper function to create the path
            function to(t) {
                var point = pointOnHeart(t);
                point.x = settings.particles.size / 2 + point.x * settings.particles.size / 350;
                point.y = settings.particles.size / 2 - point.y * settings.particles.size / 350;
                return point;
            }
            // create the path
            context.beginPath();
            var t = -Math.PI;
            var point = to(t);
            context.moveTo(point.x, point.y);
            while (t < Math.PI) {
                t += 0.01; // baby steps!
                point = to(t);
                context.lineTo(point.x, point.y);
            }
            context.closePath();
            // create the fill
            context.fillStyle = '#ea80b0';
            context.fill();
            // create the image
            var image = new Image();
            image.src = canvas.toDataURL();
            return image;
        })();    // render that thing!
        function render() {
            // next animation frame
            requestAnimationFrame(render);        // update time
            var newTime = new Date().getTime() / 1000,
            deltaTime = newTime - (time || newTime);
            time = newTime;        // clear canvas
            context.clearRect(0, 0, canvas.width, canvas.height);        // create new particles
            var amount = particleRate * deltaTime;
            for (var i = 0; i < amount; i++) {
                var pos = pointOnHeart(Math.PI - 2 * Math.PI * Math.random());
                var dir = pos.clone().length(settings.particles.velocity);
                particles.add(canvas.width / 2 + pos.x, canvas.height / 2 - pos.y, dir.x, -dir.y);
            }        // update and draw particles
            particles.update(deltaTime);
            particles.draw(context, image);
        }    // handle (re-)sizing of the canvas
        function onResize() {
            canvas.width = canvas.clientWidth;
            canvas.height = canvas.clientHeight;
        }
        window.onresize = onResize;    // delay rendering bootstrap
        setTimeout(function () {
            onResize();
            render();
        }, 10);
    })(document.getElementById('pinkboard'));</script>
    </body></html>
      

  2.   

    不想看你的代码。直接写一个<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title> new document </title>
    <style type="text/css">
    #tcfr {
    width: 200px;
    height: 300px;
    background: #99ccff;
    font-size: 20px;
    text-indent: 40px;
    }
    #tcfr p {
    margin: 0px;}
    </style>
    </head><body>
    <div id="tcfr">
    </div>
    <script type="text/javascript">
    var str = "想在这个页面上插入一个或一个区域实现文字的逐字显示且能实现分行、缩进。\n这是云盘连接网页效果代码都已打包  师哥师姐们打开看一下就行!!谢谢";
    var shtml = "";
    function run()
    {
    var html=str.charAt(0);
    shtml += html=="\n"?"</p><p>":html;
    document.getElementById("tcfr").innerHTML = "<p>"+shtml+"</p>";
    str=str.slice(1);
    if(str!="")
    setTimeout(run,100);
    }
    run();
    </script>
    </body>
    </html>
      

  3.   


    可以的啊, 直接复制到txt文件然后转为html都可以看出来的
    测试过也可以
      

  4.   

    你拷贝我的内容全了没,我这里firefox12,chrome都没问题。。IE9+没测试
      

  5.   

    额  忘说地址咯!  [email protected]
      

  6.   

    canvas要ie9+才支持,你的是ie几