prostu hit tego wydać w Chrome 37.0.2062.124 m, odpowiadając problemowi opisanemu w pytaniu OP. Jednak nie używam żadnej konkretnej biblioteki graficznej, tylko rysuję na płótnie. I ponownie rysowałem płótno, gdy zmieniał się rozmiar otaczającego DIV.
Uważam, że jeśli szerokość lub wysokość płótna jest ustawiona na zero, staje się niewiarygodne. Gdy następnym razem ustawisz szerokość i wysokość na wartości niezerowe, dowolny rysunek, który na nim wykonasz, zostanie natychmiast zignorowany, mimo że jego szerokość i wysokość są teraz niezerowe i można je zobaczyć w drzewie elementów (i najechaniu kursorem myszy). wyróżnione na stronie) w debugerze Chrome.
Więc oprócz doradztwa w odpowiedzi benni_mac_b za musisz:
- użycie
setTimeout
lub podobny do opóźnienia rysunek na płótnie, więc nie rób tego od razu po ustawieniu szerokość/wysokość, lub
- Upewnij się, że nigdy nie ustawisz płótna na zero szerokości/wysokości. Upewnij się, że jest to co najmniej 1 piksel.
Zrobiłem później dla prostoty i rozwiązuje problem.
Podsumowując:
Płótno że właśnie uprawia od (0, 0) do (1000, 1000), nie można wyciągnąć natychmiast - ignoruje wszystkie instrukcje rysowania. Ale jeśli tylko wyrosło z (1, 1) do (1000, 1000), możesz natychmiast narysować to wszystko.
dziękuję, to doprowadza mnie do szału. Będę musiał wymyślić sposób, aby to zrobić, ponieważ generuję wykresy dynamicznie i nie wiem, czym właściwie jest "g". – dogmatic69
To działa, dla każdego, kto chce to robić dynamicznie Używam atrybutów danych html5 i skończyłem na http://codepad.org/CmHHo0iG – dogmatic69