1
Vývoj / React - změna velikosti canvasu podle velikosti okna
« kdy: 06. 12. 2022, 20:32:38 »
Ahoj,
skoro se stydím dát takovou otázku sem, ale Stackoverflow ani Reddit nepomohly.
V Reactu vytvářím webovou aplikaci, která by měla mít následující layout:
Rozlišení nastavuji takto (proměnná canvas je reference na canvas prvek):
Když to ale udělám, canvas se přestane přizpůsobovat velikosti okna prohlížeče, přesněji na zvětšení výšky okna reaguje správně, na zvětšení šířky tak napůl a při zmenšení okna se neděje vůbec nic.
Netušíte někdo, jak z toho ven? Na https://codesandbox.io/s/toggle-example-forked-vpu6ke?file=/canvas.js jsem dal jednoduchý příklad - jen pro ilustraci, co nefunguje.
skoro se stydím dát takovou otázku sem, ale Stackoverflow ani Reddit nepomohly.
V Reactu vytvářím webovou aplikaci, která by měla mít následující layout:
- Top bar s ovládacími prvky - výška daná velikostí obsahu
- Side bar s ovládacími prvky - šířka daná velikostí obsahu
- Canvas - zabírá zbytek volného místa na stránce, vykreslují se na něj nějaká data
Rozlišení nastavuji takto (proměnná canvas je reference na canvas prvek):
Kód: [Vybrat]
canvas.width = canvas.offsetWidth;
canvas.height = canvas.offsetHeight;
To dělám pří prvním vykreslení pomocí effect hooku pokaždé když se změní velikost okna pomocí event listeneru.Když to ale udělám, canvas se přestane přizpůsobovat velikosti okna prohlížeče, přesněji na zvětšení výšky okna reaguje správně, na zvětšení šířky tak napůl a při zmenšení okna se neděje vůbec nic.
Netušíte někdo, jak z toho ven? Na https://codesandbox.io/s/toggle-example-forked-vpu6ke?file=/canvas.js jsem dal jednoduchý příklad - jen pro ilustraci, co nefunguje.