ich arbeite auf Stoff js Anwendung & Ich brauche die Schriftgröße zu erhöhen/verringern, wenn wir die Schrift mit der Maus
meines versuchten CodeStoff js: Schrift vergrößert, anstatt nur Skalierung, wenn sie mit der Maus der Größe
der Größe
var canvas = new fabric.Canvas('canvas');
$(document).ready(function() {
$('#text-font-size').keyup(function() {
var val = $(this).val();
if (isNaN(val)) {
alert('please enter number');
$(this).val('');
}
var activeObject = canvas.getActiveObject();
activeObject.fontSize = val;
canvas.renderAll();
});
$('#add-text-btn').click(function() {
if ($('#text-font-size').val()) {
var txtfontsize = $('#text-font-size').val();
} else {
var txtfontsize = 40;
}
var message = $('#add-text-value').val();
//var txtfontfamily = $('#font-family').val();
var new_text = new fabric.IText(message, {
left: 100,
top: 100,
fontSize: txtfontsize,
//fontFamily: txtfontfamily,
fill: '#000'
});
canvas.add(new_text);
canvas.setActiveObject(new_text);
});
canvas.on('object:selected', function(options) {
if (options.target) {
$("textarea#add-text-value").val(options.target.text);
$("#text-font-size").val(options.target.fontSize);
}
});
canvas.on('object:scaling', function(options) {
if (options.target) {
$("textarea#add-text-value").val(options.target.text);
$("#text-font-size").val(options.target.fontSize);
}
});
canvas.on('object:modified', function(options) {
if (options.target) {
$("textarea#add-text-value").val(options.target.text);
$("#text-font-size").val(options.target.fontSize);
}
});
});
<script src="http://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.5.0/fabric.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="add-text-btn">Add text</button><br><br>
<textarea rows="7" id="add-text-value">Your Text Here</textarea>
<br>
<input id="text-font-size" type="text" class="form-control">
<canvas id='canvas' width="500" height="400" style="border:#000 1px solid;"></canvas>
aber diese rescale nur der Text nicht die Schriftgröße erhöhen/verringern, aber ich habe die Schriftgröße, um die Größe wie in this
Dank für die Hilfe, jetzt diese auf tatsächliche Schriftgröße funktioniert (einschließlich Dezimalzahlen), können wir Größe Font Zahlen abzurunden hier versucht i mit diesem event.target.fontSize * = Math.round (event.target.scaleX); aber nicht funktioniert [jsfiddle] (http://jsfiddle.net/1jkh7ooo/) – Dinesh
kann man die Skalierung nicht runden, sonst springt man von 40 auf 80 zu 120 ... (Skalierung 1,2,3). Sie müssen die fontSize nach der Multiplikation runden. Siehe aktualisierte Antwort. – AndreaBogazzi
Auch Sie werden ein Problem mit der Objektdimension bemerken, das natürlich springt, aber Sie sollten fabricjs auch mitteilen, dass Sie ein neues Koordinatensystem für das Objekt brauchen. mit setCoords(); – AndreaBogazzi