如何在HTML 5 Canvas中添加可选文本?

萨钦·约瑟夫(Sachin Joseph)

我需要在画布上放置一个文本标签。可能吗?我怎样才能做到这一点?我知道这里有fillText,但是fillText没有给我平滑的输出文本。我还希望标签上的文本可由用户复制,如果我使用fillText是不可能的。

loxxy

假设,您只想在html页面的画布顶部放置一些文本:

HTML:

<label>Yahoo, I'm on top of canvas??</label>
<canvas width="500" height="500" ></canvas>

CSS:

canvas {
    border:1px solid gray;
}

label {
    position:absolute;
    top:20px;
    left:20px;
}

Working demo


编辑:

根据编辑,如果您正在寻找在画布内选择文本的解决方案,那将更加痛苦。

我建议使用CreateJS使用画布可以使您的生活更加轻松。

尽管该库没有为您提供可选择的文本,但是易于实现。

这是DEMO创建可选文本的方式。

// Text Selector Class
function Selector(stage, text) {
    var select = new createjs.Shape();

    function selector(x, y, width, height) {
        select.graphics.clear().beginFill("#ace")
            .drawRect(x || 0, y || 0, width || 0, height || 0);
    }
    var tuw = text.getMeasuredWidth();
    var tuh = text.getMeasuredHeight();
    text.addEventListener("mousedown", function (e) {
        var startX = e.rawX;
        var onMove = function (e) {
            if (e.rawX >= text.x && e.rawX <= text.x + tuw) selector(startX, text.y, e.rawX - startX, tuh);
        };
        var onUp = function () {
            stage.removeEventListener("stagemousemove", onMove);
            selector();
        };
        stage.addEventListener("stagemousemove", onMove);
        stage.addEventListener("stagemouseup", onUp);
    });
    return select;
}


var stage = new createjs.Stage("shape");

// Text Node
var text = new createjs.Text("Hello World");
text.x = 100;
text.font = "20px Arial";
text.color = "#ff7700";
text.cursor = "text";
stage.addChild(text);

// Attach Selector 
stage.addChildAt(new Selector(stage, text), 0);

// Important
stage.enableMouseOver();
setInterval(function () {
    stage.update();
}, 100);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

HTML5如何在Canvas中调用图像

来自分类Dev

HTML5如何在Canvas中调用图像

来自分类Dev

如何在Laravel 5中压缩HTML

来自分类Dev

如何在HTML 5文档中添加xml?

来自分类Dev

如何在HTML5 / HTML中创建形状?

来自分类Dev

如何在小黄瓜中定义包含参数的可选文本?

来自分类Dev

如何在html5 canvas中使用gif图像?

来自分类Dev

在 Html5 中,我如何在其下方添加带有文本的图像链接

来自分类Dev

如何在html5中绘制音频流的波形?

来自分类Dev

如何在html5的localStorage对象中存储数组?

来自分类Dev

HTML5如何在表格中对齐表格?

来自分类Dev

如何在html5中隐藏内容?

来自分类Dev

如何在QUnit中测试HTML5拖放

来自分类Dev

如何在HTML5中维护登录会话

来自分类Dev

如何在Selenium Webdriver中模拟HTML5拖放?

来自分类Dev

如何在html5中对标签进行分组?

来自分类Dev

如何在html5的localStorage对象中存储数组?

来自分类Dev

如何在html5中居中放置按钮?

来自分类Dev

如何在HTML5中嵌入.ai文件?

来自分类Dev

如何在输入中接受多个HTML5模式?

来自分类Dev

如何在HTML5中播放GSM文件

来自分类Dev

如何在HTML5中进行搜索

来自分类Dev

如何在HTML 5中创建拖放功能?

来自分类Dev

如何在html5中实现打印功能

来自分类Dev

如何在 HTML5 中自动调整标签宽度

来自分类Dev

如何在html5上的文本之间添加水平间距?

来自分类Dev

如何在html5 canvas中绘制Fabric js strokeRect?

来自分类Dev

如何在javascript中获取HTML5 Canvas.todataurl文件大小?

来自分类Dev

如何在canvas-html5中绘制图像并替换为现有函数