Skalierung der Breite des HTML5-Canvas mit dem Seitenverhältnis

8

Ich habe ein canvas-Element mit den Abmessungen 979X482px und möchte es dehnen, um es an die Breite eines beliebigen Browserfensters anzupassen, wobei das Seitenverhältnis von Breite / Höhe 1 zu 1 beibehalten wird zur Breite der Leinwand. Irgendwelche Vorschläge, wie man das mit javascript / jQuery macht?

    
dcd0181 25.05.2012, 07:19
quelle

5 Antworten

5

Zuerst legen Sie die Breite der Leinwand auf 100% fest

%Vor%

Aktualisieren Sie dann seine Höhe basierend auf seiner Breite

%Vor%

2.031 = 979/482

Aber Sie sollten nicht an $ (Fenster) .resize wie ich anhängen ... es ist ein schlechtes Verhalten

    
Trinh Hoang Nhu 25.05.2012, 07:34
quelle
9
%Vor%

oder eine Variation davon. ctx ist der Kontext. Eine if-Anweisung für Edge Cases könnte notwendig sein!

    
user1422770 30.05.2012 04:28
quelle
1

Alle vorherigen Antworten sind großartig, aber sie werden nicht alle auf der Leinwand gezeichneten Bilder proportional zur neuen Leinwandgröße skalieren. Wenn Sie kinetisch verwenden, habe ich eine Funktion hier = Ссылка

    
Andrew Junior Howard 13.05.2014 06:35
quelle
0

Ich spielte selbst eine Weile mit dieser Sache herum. Das Konzept dreht sich darum, die Breite der Leinwand zu kennen. Sie müssen außerdem sicherstellen, dass alle Ihre Canvas-Assets auch Berechnungen zum Buchen verwenden, abhängig vom Browser mit. Ich habe meinen Code dokumentiert, ich hoffe, es hilft,

%Vor%     
Sabba Keynejad 27.01.2018 13:52
quelle
-2

Versuchen Sie es

%Vor%     
mehmood 25.05.2012 07:45
quelle