Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何在Raphael JS中调整动态打印文本的大小_Jquery_Resize_Raphael - Fatal编程技术网

Jquery 如何在Raphael JS中调整动态打印文本的大小

Jquery 如何在Raphael JS中调整动态打印文本的大小,jquery,resize,raphael,Jquery,Resize,Raphael,我已经找到了如何用Raphael JS拖动对象 但是现在,我想知道是否有可能调整动态打印文本的大小,并使用Raphael JS获得这个“对象”的新宽度/高度 以下是我想完成的第一个方面: $(function() { var R = Raphael("holder", 400, 400); $("#typetext").keyup(function() { var textValue = $(this).val(); R.clear(); var c = R.print(

我已经找到了如何用Raphael JS拖动对象

但是现在,我想知道是否有可能调整动态打印文本的大小,并使用Raphael JS获得这个“对象”的新宽度/高度

以下是我想完成的第一个方面:

$(function() {
var R = Raphael("holder", 400, 400);
$("#typetext").keyup(function() {
    var textValue = $(this).val();
    R.clear();
    var c = R.print(100, 100, textValue, R.getFont("Arial"), 60).attr({
        fill: "#ff0000",
        cursor: "move"
    });
    var start = function() {
        this.odx = 0;
        this.ody = 0;
        this.animate({
            "fill-opacity": 0.2
        }, 500);
    },
        move = function(dx, dy) {
            this.translate(dx - this.odx, dy - this.ody);
            this.odx = dx;
            this.ody = dy;
        },
        up = function() {
            this.animate({
                "fill-opacity": 1
            }, 500);
        };
    c.drag(move, start, up);
}); 
});​
演示:

任何建议都将不胜感激

编辑:给我一个想法,我需要做什么,但与印刷文本

EDIT2:打印文本由SVG结构中的路径定义,似乎不可能获得路径的宽度和高度…

不可能“重新打印”,因为在将不同的像素高度馈送到
打印
使用的路径生成例程中。但是,如果您对保持文本在某些rational边界内的缩放感兴趣,则可以获取路径的边界框,然后对其进行缩放,以确保其位于画布的宽度和高度范围内

var bbox = c.getBBox();
if ( bbox.x + bbox.width > $(R.canvas).width() )
{
    var scale = ( $(R.canvas).width() - bbox.x) / bbox.width;
    c.scale( scale, scale, bbox.x, bbox.y  );
}

演示了功能。

感谢您的回答。比例影响拖动速度是否正常?比例将成为对象变换矩阵的持久部分。我想你可以通过调整你的平移来补偿缩放,a la
this.translate((dx-this.odx)/scale,(dy-this.ody)/scale)