Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS]Nie wyświetla zawartości znacznika canvas
Gamoń
post 16.05.2012, 18:39:50
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 23.03.2012

Ostrzeżenie: (0%)
-----


Witam. Nie wyświetla mi w żadnej przeglądarce zawartości znacznika canvas co robię źle ?

Kod
<!doctype html>
<html>
  <head>
    <link rel="stylesheet" href="de.css" />
    <script src="js/custom.js"></script>
  </head>
  <body>
        dawdwadwd
    <canvas id="draw" width="500" height="300">
    Wyświetli to jak canvas nie działa
    </canvas>

  </body>
</html>

Kod
var canvas = document.getElementById('canvas');
if (canvas.getContext){

  var c = canvas.getContext('2d');

  c.beginPath();
  c.moveTo(35, 10);
  c.lineTo(60, 40);
  c.lineTo(10, 40);
  c.lineTo(35, 10);
  c.stroke();
  
  c.fillText('a',30,60);
  c.fillText('c',110,60);
  c.fillText('b',70,130);
}


Ten post edytował Gamoń 16.05.2012, 18:42:31
Go to the top of the page
+Quote Post
prowseed
post 17.05.2012, 14:24:50
Post #2





Grupa: Zarejestrowani
Postów: 433
Pomógł: 64
Dołączył: 29.01.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


A Twój canvas jakie ma id?

//EDIT
skrypt wrzuć pod canvas na sam dół dokumentu

Ten post edytował prowseed 17.05.2012, 14:25:46


--------------------
Go to the top of the page
+Quote Post
Gamoń
post 18.05.2012, 08:58:03
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 23.03.2012

Ostrzeżenie: (0%)
-----


teraz działa, dziękuje ale czemu nie pobiera z src ?
Go to the top of the page
+Quote Post
prowseed
post 18.05.2012, 11:06:18
Post #4





Grupa: Zarejestrowani
Postów: 433
Pomógł: 64
Dołączył: 29.01.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Pobiera, tylko w drzewie DOM jeszcze nie ma elementu, do ktorego sie odwolujesz tutaj:
  1. var canvas = document.getElementById('canvas'); //oczywiscie powinno byc w Twoim przypadku ...('draw');


--------------------
Go to the top of the page
+Quote Post
kamil4u
post 18.05.2012, 11:10:25
Post #5





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


Chodzi o to, że DOM musi być załadowany. DOM to w skrócie struktura HTML zapisana dla komputera w takiej formie, żeby mógł odnajdywać elementy( np. po id, class, itd. ). W chwili, gdy chcesz się dobrać do elementu( document.getElementById('canvas') ) ten element się jeszcze nie załadował do pamięci, więc de facto go nie ma. Rozwiązaniem jest właśnie zmiana kolejności lub zostawienie tak jak jest, a w kodzie JS:
Kod
onload = function(){
//tu już DOM jest załadowane - możesz wrzucić tu dotychczasowy kod
}


Drugi sposób jest lepszy, gdyż masz większy porządek w kodzie.

Warto dodać, że zdarzenie onload zadziała, gdy załaduje się cała strona, więc DOM, ale również obrazki i inne elementy( to wada tego rozwiązania, ale dotyczy się to głównie "ciężkich" stron ). Żeby wykona zdarzenie zaraz po załadowaniu DOM musisz... poczytać jak to się robi, bo dla starszych przeglądarek są różne metody.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 09:31