Eine wirkliche Antwort auf diese Frage, nicht eine neue statische Größe beteiligt, sondern tatsächlich CSS zu sein, um wirksam-ist eine der folgenden Optionen:
- In CSS Sie einzelne Eigenschaften und sie mit folgenden außer Kraft setzen können! wichtig; der Nachteil ist, dass alle weiteren Definitionen auch verwenden müssen, wichtig oder sie werden ignoriert:
[width], [height], [style]
{
width: 100vw!important;
min-height: 100vh!important;
}
- JQuery Verwenden Sie die Inline-Eigenschaftswerte in einen leeren festlegen Zeichenfolge. Das kannst du vermutlich ohne JQuery erreichen, aber ich überlasse es dir als Übung.
Javascript (jQuery):
$('[style]').attr( 'style', function(index, style){ return ''; });
$('[height]').attr('height', function(index, height){ return ''; });
$('[width]').attr( 'width', function(index, height){ return ''; });
CSS:
*, *:before, *:after
{
box-sizing: border-box;
}
body
{
width: 100vw;
min-height: 100vh;
padding: 0;
margin: 0;
}
.canvas-container,
canvas
{
width: inherit;
min-height: inherit;
}
canvas.lower-canvas
{
position: absolute;
top: 0;
}
Danach wird CSS wie erwartet angewendet werden.
Es ist offensichtlich auch notwendig Stoff über die Änderung zu sagen:
function sizeCanvas()
{
var width = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
var height = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
canvas.setHeight(height)
canvas.setWidth(width)
}
window.addEventListener('resize', draw, false);
function initDraw()
{
// setup
}
function draw()
{
canvas.renderAll();
}
sizeCanvas();
initDraw();
Dieser Stoff auf die Darstellungsgröße konfigurieren und halten sie entsprechend dimensioniert, wenn es die Größe.
Es ist erwähnenswert, dass dieses Problem aus zwei Gründen entsteht:
Jemand dachte, es war eine gute Idee Inline-Stile zu verwenden und strengstens bestraft werden sollte, da es keine Situation, in der dies jemals eine angemessene trainieren.
Fabric ändert die DOM-Anordnung und fügt die ursprüngliche Zeichenfläche in einem neuen div mit einer zweiten verschachtelten Zeichenfläche ein, was zu Überraschungen führen kann.
Ich habe hinzugefügt Test nicht hier http://jsfiddle.net/QcZ54/ – user469652