Płótno z absolutną pozycją nie działa, jak widać tutaj: http://jsfiddle.net/733zs/1/ (przetestowane w Firefoksie i Chrome) Prostokąt powinien mają rozmiar 500x500 pikseli.

Czy istnieje sposób, aby działało, bez ręcznego ustawienia szerokości i wysokości? Czy zrobiłem jakieś błędy?

6
user1027167 2 grudzień 2011, 19:15

3 odpowiedzi

Najlepsza odpowiedź

Musisz ręcznie ustawić szerokość i wysokość.

Można to zrobić za pośrednictwem zdarzenia JavaScript Onresize - co jest w porządku, ponieważ prawie zawsze potrzebujesz przerysować na płótnie powierzchni.

EDYTOWAĆ:

Z specyfikacji W3 jest tutaj interfejs Canvas Dom:

http://www.w3.org/tr/html5/the-canvas-Element.html.

interface HTMLCanvasElement : HTMLElement {
           attribute unsigned long width;
           attribute unsigned long height;

  DOMString toDataURL(in optional DOMString type, in any... args);
  void toBlob(in FileCallback, in optional DOMString type, in any... args);

  object getContext(in DOMString contextId, in any... args);
};

Element na płótnie ma dwa atrybuty do kontrolowania rozmiaru przestrzeni współrzędnych: szerokość i wysokość. Atrybuty te, gdy określono, muszą mieć wartości, które są prawidłowym nie-ujemnym liczbami całkowitymi. Przepisy dotyczące analizowania nieadegatywnych liczb całkowitych należy stosować do uzyskania wartości numerycznych. Jeśli brakuje atrybutu lub jeśli parsowanie jego wartości zwraca błąd, należy zamiast użyć wartość domyślna. Ustawienia atrybut szerokości do 300 i domyślnie atrybut wysokości do 150.

6
Steve 2 grudzień 2011, 16:25

Prostokąt jest obcięty, ponieważ element płótna jest tylko 300.150 pikseli dużych.

http://jsfiddle.net/733zs/3/

1
Declan Cook 2 grudzień 2011, 15:19

Pozycjonowanie działa poprawnie. Po prostu rysujesz czarny pudełko w prawym dolnym rogu płótna.

0
circusdei 2 grudzień 2011, 15:18