zoukankan      html  css  js  c++  java
  • HTML5 Canvas Text文本居中实例

    1.代码:

    <canvas width="700" height="300" id="canvasOne" class="canvasOne"></canvas>
    <script>
        var cancasOne = document.getElementById('canvasOne');
        var ctx = cancasOne.getContext('2d');
        var text = '后会无期',
            textMetrics,
            square_width = 20,
            font_height = 128;
        //画网线
        function drawGrid(color, stepx, stepy) {
            ctx.save();
            ctx.strokeStyle = color;
            ctx.lineWidth = 0.5;
            ctx.fillStyle = '#ffffff';
            ctx.fillRect(0, 0, canvasOne.width, canvasOne.height);
            //画竖线
            for (var i = stepx + 0.5; i < canvasOne.width; i += stepx) {
                ctx.beginPath();
                ctx.moveTo(i, 0);
                ctx.lineTo(i, canvasOne.height);
                ctx.stroke();
            }
            //画横线
            for (var i = stepx + 0.5; i < canvasOne.height; i += stepy) {
                ctx.beginPath();
                ctx.moveTo(0, i);
                ctx.lineTo(canvasOne.width, i);
                ctx.stroke();
            }
            ctx.restore();
        }
        //画文本
        function drawText() {
            ctx.fillStyle = 'orange';
            ctx.strokeStyle = 'cornflowerblue';
            ctx.fillText(text, canvasOne.width / 2,
                canvasOne.height / 2);
            ctx.strokeText(text, canvasOne.width / 2,
                cancasOne.height / 2);
        }
        //画中间的小正方形
        function drawCenterSquare() {
            ctx.fillStyle = 'rgba(255,0,0,0.4)';
            ctx.strokeStyle = 'black';
            ctx.fillRect(canvasOne.width / 2 - square_width / 2,
                canvasOne.height / 2 - square_width / 2,
                square_width, square_width);
            ctx.strokeRect(canvasOne.width / 2 - square_width / 2,
                cancasOne.height / 2 - square_width / 2,
                square_width, square_width);
        }
        ctx.font = '128px Helvetica';
        ctx.textBaseline = 'middle'; //设置文本的垂直对齐方式
        ctx.textAlign = 'center';//设置文本的水平对齐方式
        textMetrics = ctx.measureText(text);
        drawGrid('lightgray', 10, 10);
        drawText();
        drawCenterSquare();
    </script>

    2.显示结果:

  • 相关阅读:
    Jquery的事件与动画-----下雨的天气好凉爽
    JQuery选择器--------没有它就没有页面效果
    JavaScript对象--------------你又知道那些
    实体类----app-config
    知错就改,善莫大焉!!!
    二分查找模板
    《软件工程》学习资料积累
    《计算机算法设计与分析》的学习资源和好的课程积累
    软件的概念
    递归方程的求解和算法时间复杂度的分析
  • 原文地址:https://www.cnblogs.com/tianma3798/p/5563629.html
Copyright © 2011-2022 走看看