DOM i JavaScript DOM W3C

Podobne dokumenty
DOM i JavaScript DOM W3C

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Zdarzenia w JavaScript (Zajęcia r.)

JAVASCRIPT (cz. IV) ĆWICZENIA DO SAMODZIELNEGO WYKONANIA materiały dydaktyczne dla słuchaczy opracowanie: by Arkadiusz Gawełek, Łódź

CZYM JEST JAVASCRIPT?

Zajęcia 4 - Wprowadzenie do Javascript

Multimedia i interfejsy. Ćwiczenie 5 HTML5

Zdarzenia Zdarzenia onload i onunload

JavaScript - wykład 4. Zdarzenia i formularze. Obsługa zdarzeń. Zdarzenia. Mysz. Logiczne. Klawiatura. Beata Pańczyk

Podstawy JavaScript ćwiczenia

Wykład 03 JavaScript. Michał Drabik

Tworzenie aplikacji internetowych E14

Aplikacje WWW - laboratorium

Krótki kurs JavaScript

XML extensible Markup Language. część 5

Sierpień 2015 rozwiązanie plik: index.htlm

Aplikacje WWW - laboratorium

Celem ćwiczenia jest zapoznanie z językiem HTML i JavaScript, zasadami tworzenia stron WWW i umieszczania na nich skryptów w języku JavaScript.

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

Kurs WWW wykład 6. Paweł Rajba

Wybrane działy Informatyki Stosowanej

WYKŁAD 4 JĘZYK JAVASCRIPT CZĘŚĆ 1

DOM (Document Object Model)

HTML ciąg dalszy. Listy, formularze

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Ćwiczenia laboratoryjne nr 8 Podstawy języka XML.

HTML (HyperText Markup Language) hipertekstowy język znaczników

FORMULARZE Formularz ma formę ankiety, którą można wypełnić na stronie. Taki formularz może być np. przesłany pocztą elektroniczną .

Wybrane działy Informatyki Stosowanej

APLIKACJE INTERNETOWE 1 HTML - STRUKTURA STRONY INTERNETOWEJ

Kurs HTML 4.01 TI 312[01]

Laboratorium 1 Wprowadzenie do PHP

Projektowanie stron WWW

Dokumentacja Skryptu Mapy ver.1.1

Funkcje i instrukcje języka JavaScript

Obiektowe bazy danych

JavaScript. mgr inż. Remigiusz Pokrzywiński

HTML. HTML(ang. HyperTextMarkupLanguage, pol. hipertekstowy język znaczników) język wykorzystywany do tworzenia stron internetowych

Atrybuty znaczników HTML

XML extensible Markup Language. część 5

Zaawansowane aplikacje internetowe

Rys.2.1. Drzewo modelu DOM [1]

Szablon główny (plik guestbook.php) będzie miał postać:

Tworzenie stron internetowych w kodzie HTML Cz 5

plansoft.org Zmiany w Plansoft.org

Witryny i aplikacje internetowe

TECHNOLOGIE SIECI WEB

WYKŁAD 3 XML DOM XML DOCUMENT OBJECT MODEL CZĘŚĆ 1

Young Programmer: HTML+PHP. Dr inż. Małgorzata Janik, Zajęcia #2

Laboratorium 1: Szablon strony w HTML5

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

Hyper Text Markup Language

Aplikacje WWW - laboratorium

Podstawy programowania w języku JavaScript

Dodanie nowej formy do projektu polega na:

JAVAScript tablice, przekazanie danych do funkcji, obiekty Date i window

Wykład 6 Skrypty typu JavaScript. Technologie internetowe Zofia Kruczkiewicz

Najprostszy dokument HTML. <html> <body> Dowolny tekst. </body> </html>

Wybrane znaczniki HTML

Ćw.4 Dokumenty HTML Przy pomocy języka znaczników opisać można strukturę witryny internetowej, postać i wygląd jej elementów.

Współdziałanie przeglądarki i skryptów w pliku HTML (lub XML), oraz współdziałanie przeglądarki i ekranu ilustruje niżej położony rysunek.

Pozycjonowanie i poruszanie warstw

LIVE Gra w życie. LIVE w JavaScript krok po kroku. ANIMACJA Rozpoczynamy od podstawowego schematu stosowanego w animacji

AUDYT DOSTĘPNOŚCI STRONY INTERNETOWEJ

HTML cd. Ramki, tabelki

Przykład integracji kalkulatora mbank RATY na platformie IAI

Programowanie internetowe

Danuta ROZPŁOCH-NOWAKOWSKA Strona Moduł 4. Przykład 1. Przykład 2. HTML 4.01 Transitional).

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

LABORATORIUM 2 WSTĘP DO SIECI TELEINFORMATYCZNYCH TABELE I FORMULARZE

Aplikacje internetowe

Formularze w PHP dla początkujących

Aplikacje internetowe - laboratorium

JAVAScript w dokumentach HTML (2)

Aplikacje WWW - laboratorium

Specyfikacja techniczna dot. mailingów HTML

za pomocą: definiujemy:

Defilada - przykład wykorzystujący animowane modele Copperlicht. Andrzej P.Urbański Politechnika Poznańska

Wprowadzenie do języka HTML

Responsywne strony WWW

Podstawy HTML i CSS. Wydział Matematyki, Informatyki i Ekonometrii Uniwersytet Zielonogórski

Programowanie WEB PODSTAWY HTML

Podstawy (X)HTML i CSS

Odsyłacze. Style nagłówkowe

PRÓBNY EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE CZĘŚĆ PISEMNA

Bazy Danych i Usługi Sieciowe

Aplikacje internetowe laboratorium JavaScript

Aplikacje internetowe laboratorium JavaScript

Dokumentacja WebMaster ver 1.0

Wprowadzenie do Internetu Zajęcia 5

I. Dlaczego standardy kodowania mailingów są istotne?


Tworzenie Stron Internetowych. odcinek 10

Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków do plików, bitmapy pozaekranowe.

Wyszukiwanie największej spośród czterech liczb. Przykładowe rozwiązanie

SSK - Techniki Internetowe

Często używanym elementem języka HTML są tabele, które wykorzystuje się do wygodnego rozmieszczania informacji i obrazów.

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Budowa dokumentu HTML 5

zmiana koloru tła <body bgcolor = kolor > tło obrazkowe <body background= ścieżka dostępu do obrazka >

Transkrypt:

DOM W3C DOM (ang. Document Object Model, obiektowy model dokumentu) to API dla dokumentów HTML i XML. Wprowadza strukturalne odwzorowanie dokumentu, pozwalając modyfikować jego zawartość i warstwę prezentacji podstawowy (ang. core) - ogólny sposób reprezentowania dokumentów XML; przedstawia dokument jako drzewo zawierające węzły (ang. node). Każdy węzeł może być elementem, fragmentem tekstu, komentarzem, instrukcją preprocesora (np. dołączonym fragmentem PHP) albo encją. DOM HTML (typowy dla przeglądarek) - to zestaw metod ułatwiających tworzenie dynamicznych stron oraz zapewniających kompatybilność wstecz z wcześniejszym prostym DOM Netscape. DOM HTML przedstawia dokument jako kilka kolekcji obiektów określonych typów (np. formularze, obrazki) oraz dodaje pola/metody ułatwiające dostęp do funkcjonalności specyficznej dla HTML, jak np. odczyt pól formularza. 30 października 2017 Strona 1

Węzeł główny to. Wszystkie inne węzły w dokumencie są zawarte w. Węzeł ma dwoje dzieci, węzły i. itd Tekst jest zawsze przechowywany w węźle tekstowym <title>dom Tutorial</title> węzeł <title> zawiera węzeł tekstowy o wartości DOM Tutorial DOM Tutorial nie jest wartością węzła <title> API DOM definiuje standardowe właściwości i metody. Właściwości określają coś (np. nazwa węzła). Metody określają co się dzieje (np. usunąć węzeł) Obiekty DOM directories - obiekt, udostępnia pasek z adresami history - obiekt, udostępnia historię oglądanych stron WWW location - obiekt, udostępnia adres aktualnej strony locationbar - obiekt, udostępnia pasek z adresem strony menubar - obiekt, udostępnia pasek z menu personalbar - obiekt, udostępnia pasek osobisty scrollbars - obiekt, udostępnia paski przewijania statusbar - obiekt, udostępnia pasek statusu toolbar - obiekt, udostępnia pasek narzędziowy window - obiekt, udostępnia zawartość okna przeglądarki document - główny element dokumentu reprezentuje całą stronę HTML/XHTML Przykładowe właściwości: x.innerhtml - the text value of x x.nodename - the name of x x.nodevalue - the value of x x.parentnode - the parent node of x x.childnodes - the child nodes of x x.attributes - the attributes nodes of x document.root korzeń dokumentu document.body ciało dokumentu Przykładowe metody (x węzeł element HTML): x.getelementbyid(id) - get the element with a specified id 30 października 2017 Strona 2

x.getelementsbytagname(name) - get all elements with a specified tag name x.appendchild(node) - insert a child node to x x.removechild(node) - remove a child node from x JavaScript JavaScript jest obiektowym językiem skryptowym. Jest językiem interpretowanym, nie kompilowanym. Jest wbudowany w język HTML. Umożliwia tworzenie aplikacji po stronie klienta lub serwera. JavaScript umożliwia interakcję z użytkownikiem, automatyczne tworzenie stron WWW. JavaScript umożliwia tworzenie aplikacji łączących technologie po stronie klienta i po stronie serwera. JavaScript nie jest Javą Skrypty JavaScript w kodzie strony HTML 1. Skrypt JavaScript wewnątrz elementu dokumentu HTML plik1.html 2. Skrypt JavaScript wewnątrz elementu dokumentu HTML plik2.html 3. Skrypt JavaScript w pliku zewnętrznym plik3.html i plik3.js plik1.html <meta charset="iso-8859-2"> <title>javascript - skrypt 1</title> <h3> document.write("pierwszy skrypt w języku JavaScript"); </h3> document.write("<hr />"); document.write("<p>skrypt wewnątrz elementu body dokumentu HTML</p>"); document.write("<hr/>"); 30 października 2017 Strona 3

plik2.html <title>javascript - skrypt 2</title> <!-- document.write("<hr/>"); document.write("<p>skrypt wewnątrz elementu head dokumentu HTML</p>"); document.write("<hr/>"); --> <h3>pierwszy skrypt w języku JavaScript</h3> plik3.html <title>javascript - skrypt 3</title> <script src="plik3.js" > <h3>pierwszy skrypt w języku JavaScript</h3> plik3.js // JavaScript Document document.write("<hr />"); document.write("<p>skrypt wewnątrz dodatkowego pliku.</p>"); document.write("<hr/>"); Funkcje komunikatorów 1. Sprawdzamy funkcjonalność funkcji alert(), confirm() i prompt() skrypt plik4.html 2. Modyfikujemy zawartość pliku z punktu poprzedniego dodając funkcjonalność wydruku odpowiedzi otrzymanych z funkcji confirm() i prompt() wymagany kod do modyfikacji w skrypcie plik4a.html 30 października 2017 Strona 4

plik4.html <title>javascript - skrypt 2</title> <!-- alert("obsługa komunikatu Alert"); confirm("czy potwierdzasz wybór?"); prompt("podaj liczbę studentów."); --> plik4a.html <!-- alert("obsługa komunikatu Alert"); var k1 = confirm("czy potwierdzasz wybór?"); var k2 = prompt("podaj liczbę studentów."); document.write("odpowiedź na 'confirm' " + k1 + "<br />"); document.write("odpowiedź na 'prompt' " + k2 + "<br/>"); --> Obsługa zdarzeń Zdarzenia w JavaScript jest to ogólny mechanizm pozwalający na uruchomienie dowolnego fragmentu skryptu JavaScript w momencie gdy wystąpi określone zdarzenie, np. przycisk zostanie kliknięty. Aby obsłużyć dowolne zdarzenie, należy przypisać mu funkcję obsługi zdarzenia. Zdarzenia myszy onclick - pojedyncze kliknięcie (naciśnięcie i zwolnienie klawisza myszki); ondblclick - podwójne kliknięcie; onmousedown - wciśnięcie klawisza myszki; onmouseup - zwolnienie klawisza myszki; 30 października 2017 Strona 5

onmouseover - kursor myszki znalazł się w obszarze obiektu; onmousemove - kursor myszki został przesunięty; onmouseout - kursor myszki opuścił obszar obiektu. Zdarzenia klawiatury onkeypress - klawisz alfanumeryczny został wciśnięty; onkeydown - klawisz został naciśnięty; onkeyup - klawisz został zwolniony. Zdarzenia formularza onsubmit - formularz będzie wysłany. onreset - zawartość formularza jest czyszczona. Zdarzenia kontrolek formularza onfocus - kontrolka otrzymała fokus (dane z klawiatury będą trafiać właśnie do niej); onblur - kontrolka straciła fokus; onselect - kontrolka została wybrana (wybranie kontrolki nie zawsze wiąże się z przekazaniem jej fokusu); onchange - zawartość kontrolki się zmieniła.. Zdarzenia dokumentu onload - strona została załadowana; onunload - strona jest zamykana; 1. Obsługa zdarzenia onclick() wywołanego przez myszkę skrypt plik5a.html 2. Obsługa zdarzenia onmouseover() i onmouseout() skrypt plik5b.html 3. Obsługa zdarzenia onload() skrypt plik5c.html plik5a.html <title>javascript - skrypt 3</title> function inform(){ alert("informacja pojawia się po wciśnięciu klawisza.") <h3>obsługa zdarzenia onclik</h3> <form> <input type="button" name="test" value="naciśnij" onclick="inform()"> </form> 30 października 2017 Strona 6

plik5b.html <title>przyklad 3</title> <p> Obsługa zdarzeń przy ruchu kursorem myszy </p> <br /> <a href="lab3_5b.html" onmouseover="alert('test 1 ')" >Kursor na linii ==1== </a> <br /> <a href="lab3_5b.html" onmouseover="alert('test 2 ')" >Kursor na linii ==2== </a> plik5c.html <title>javascript - skrypt 3</title> function finish(){ alert('strona została załadowana!'); <body > <h3>obsługa zdarzenia onload</h3> Dodajemy do elementu atrybut - onload="finish();" i sprawdzamy ponownie działanie skryptu. 30 października 2017 Strona 7

Obsługa formularzy 1. Odczyt danych wprowadzanych do pól formularza - skrypt plik6a.html plik6a.html <title>javascript formularz</title> <h3>formularze w JS</h3> <form name="form1"> <input type="text" size="10" value="zajecia z JS" name="pole1"> <input type="button" value="sprawdź" onclick="alert(document.form1.pole1.value)"> </form> 2. Funkcja eval() prosty skrypt obliczeniowy modyfikacja skryptu plik6a.html. W części nagłówkowej dodajemy funkcję calc() realizującą funkcję eval(), natomiast w części body dodajemy nowy formularz form3 po istniejącym formularzu form1. skrypt plik6a.html function cal() { document.form3.wynik.value=eval(document.form3.calculator.value); <form name="form3"> <input type="text" size="20" name="calculator"> <input type="button" name="c1" value="wylicz" onclick="cal()"> <input type="reset" name="c2" value="skasuj"> <br/> Wynik:<input type="text" size="20" name="wynik"> </form> 30 października 2017 Strona 8

3. Odczyt wartości wybranych poleceniem <select> w ramach formularza skrypt plik6b.html plik6b.html <title>javascript walidacja formularza</title> function status(){ var indeks = document.grupa.test.options.selectedindex; var text0 = document.grupa.test.options.length; var text1 = document.grupa.test.options[0].value; var text2 = document.grupa.test.options[0].text; var text3 = document.grupa.test.options[indeks].value; var text4 = document.grupa.test.options[indeks].text; var text = "Liczba pozycji: "+text0+"\n"; text += "Klucz pozycji pierwszej: "+text1+"\n"; text += "Opis pozycji pierwszej: "+text2+"\n"; text += "Indeks pozycji wybranej: "+indeks+"\n"; text += "Klucz pozycji wybranej: "+text3+"\n"; text += "Opis pozycji wybranej: "+text4+"\n"; alert ( text ); <form name="grupa"> <p> <select name="test" size="1"> <option value="7">abacki</option> <option value="8">babacki</option> <option value="9">cabacki</option> <option value="10">dadacki</option> </select> </p> <input type="button" name="b1" value="opis wybranej pozycji" onclick="status(); " /><br/> </form> 30 października 2017 Strona 9

4. Prosta aplikacja z wyborem uczestnika kursu skrypt plik6c.html plik6c.html <title>javascript walidacja formularza</title> var student=new Array() student[0]="" student[1]=["abacki A.Abacki", "Babacki W.Babacki", "Dadacki Z.Dadacki", "Kowalski M.Kowalski", "Zazacki A.Zazacki"] student[2]=["cabacki N.Cabacki", "Kowalski H.Kowalski", "Mamacki M.Mamacki", "Opalski Z.Opalski"] student[3]=["tatarski L.Tatarski", "Zawadzki E.Zawadzki", "Bracki B.Bracki", "Nanacki L.Nanacki", "Opacki S.Opacki"] function updategrupa(selectedstudentgrupa){ var grupalist=document.form1.grupa; var studentlist=document.form1.student; studentlist.options.length=0 if (selectedstudentgrupa>0){ for (i=0; i<student[selectedstudentgrupa].length; i++) studentlist.options[studentlist.options.length]=new Option(student[selectedStudentGrupa][i].split(" ")[0], student[selectedstudentgrupa][i].split(" ")[1]) <form name="form1"> <select name="grupa" size="4" onchange="updategrupa(this.selectedindex)" style="width: 150px"> <option selected>wybierz grupę</option> <option value="1">grupa 1</option> <option value="2">grupa 2</option> <option value="3">grupa 3</option> </select> <select name="student" size="4" style="width: 150px" onclick="alert(this.options[this.options.selectedindex].value)"> </select> </form> 30 października 2017 Strona 10

5. Walidacja wprowadzanych danych do formularza wykorzystamy onblur skrypt plik6d.html plik6d.html <title>javascript walidacja formularza</title> function emailcheck(){ var string1=document.form1.email.value; if (string1.indexof("@")==-1){ alert("proszę podać poprawny adres e-mail!"); document.form1.email.focus(); <form name="form1"> <p>adres e-mail</p> <input type="text" size="20" name="email" onblur="emailcheck()" /> <p>tekst informacji:</p> <textarea name="s1" rows="2" cols="20"></textarea> <input type="submit" name="b1" value="wyślij" /> </form> 30 października 2017 Strona 11

6. Walidacja wprowadzanych danych do formularza onsubmit skrypt plik6e.html plik6e.html <title>javascript walidacja formularza</title> function validate(){ if ((document.form1.pole1.value=="") (document.form1.pole2.value=="")){ alert ("Należy wypełnić wszystkie pola wymagane!"); return false; else return true; <form name="form1" onsubmit="return validate()"> <p>adres e-mail: (*pole wymagane)</p> <input type="text" size="20" name="pole1" /><br/> <p>informacja zwrotna: (*pole wymagane)</p> <textarea name="pole2" rows="3" cols="25"></textarea><br/> <p>adres domowy: (pole nie wymagane)</p> <input type="text" size="35" name="pole3" /><br/> <input type="submit" name="b1" value="submit" /> </form> 30 października 2017 Strona 12

7. Prosty kalkulator wykonujący podstawowe cztery działania arytmetyczne skrypt plik6f.html plik6f.html <title>kalkulator</title> <meta charset="iso-8859-2"> <form name="calculator"> <input type="text" disabled id="total" style="text-align: right; background: white; width:" /> </form> <table> <tr> <td><input type="button" value="c" style="width: 100%" onclick="calculator.total.value = ''"></td> <td><input type="button" value="/" style="width: 100%" onclick="calculator.total.value += '/'"></td> <td><input type="button" value="*" style="width: 100%" onclick="calculator.total.value +='*'"></td> <td><input type="button" value="-" style="width: 100%" onclick="calculator.total.value += '-'" ></td> </tr> <tr> <td><input type="button" value="7" onclick="calculator.total.value += '7'"></td> <td><input type="button" value="8" onclick="calculator.total.value += '8'"></td> <td><input type="button" value="9" onclick="calculator.total.value += '9'"></td> <td rowspan="2"><input type="button" onclick="calculator.total.value += '+'" style="height: 50px;vertical-align: middle" value ="+"></td> </tr> <tr> <td><input type="button" value="4" onclick="calculator.total.value += '4'"></td> <td><input type="button" value="5" onclick="calculator.total.value += '5'"></td> <td><input type="button" value="6" onclick="calculator.total.value += '6'"></td> </tr> <tr> <td><input type="button" value="1" onclick="calculator.total.value += '1'"></td> <td><input type="button" value="2" onclick="calculator.total.value += '2'"></td> <td><input type="button" value="3" onclick="calculator.total.value += '3'"></td> <td rowspan="2"><input type="button" onclick="calculator.total.value = eval(calculator.total.value)" style="height: 50px; vertical-align:middle" value ="="></td> </tr> <tr> <td colspan="2"><input type="button" style="width: 68px; text-align: center" value="0" onclick="calculator.total.value += '0'"></td> <td><input type="button" value="." style="width: 100%" onclick="calculator.total.value += '.'"></td> </tr> </table> 30 października 2017 Strona 13

Tworzenie nowej treści na stronie WWW - innerhtml 1. Zmiana zawartości elementu <div> z wykorzystaniem własności innerhtml skrypt plik7.html plik7.html <title>javascript walidacja formularza</title> function update(index){ var tekst = "Przykładowy tekst w ramach bloku." ; var tabelka = "<table border='1'><tr><th>kol1</th><th>kol2</th></tr><tr><td>w11</td><td>w12</td></tr><tr><td>w21 </td><td>w22</td></tr></table>" ; var obrazek = "<img src='' alt='obrazek' />" ; var link = "<a href='http://kursjs.pl/' >Kurs JavaScript</a>"; switch (index) { case 0: document.getelementbyid("test").innerhtml = tekst; break; case 1: document.getelementbyid("test").innerhtml = tabelka; break; case 2: document.getelementbyid("test").innerhtml = obrazek; break; case 3: document.getelementbyid("test").innerhtml = link; break; <form name="form1"> <select name="wybor" onchange="update(this.selectedindex)"> <option value="1">tekst</option> <option value="2">tabelka</option> <option value="3">obrazek</option> <option value="4">link</option> </select> </form> <div id="test">to jest miejsce do wprowadzania nowej zawartoci.</div> 30 października 2017 Strona 14

Modyfikowanie zawartości strony (zmiana grafiki, styli) 1. Dynamiczna zmiana styli wyświetlających stronę WWW skrypt plik8a.html plik8a.html <!DOCTYPE HTML > <title>dynamiczne wartości CSS</title> <meta charset="iso-8859-2"> <style type="text/css"> #box1{ position: absolute; top: 20px; left: 50px; width: 200px; border: solid #ff0000 3px; background-color: #ffff00; color: #000000; padding: 10px; </style> <script language="javascript"> function change(){ document.getelementbyid("box1").style.bordercolor = "#0000ff"; document.getelementbyid("box1").style.backgroundcolor = "#000000"; document.getelementbyid("box1").style.color = "#ffffff"; function change_back(){ document.getelementbyid("box1").style.bordercolor = "#ff0000"; document.getelementbyid("box1").style.backgroundcolor = "#ffff00"; document.getelementbyid("box1").style.color = "#000000"; <div style="border-color: rgb(255, 0, 0); background-color: rgb(255, 255, 0); color: rgb(0, 0, 0);" id="box1" onmouseover="change()" onmouseout="change_back()"> <p>zawartość wewnątrz bloku zmienia się za każdym razem po najechaniu myszką na obszar.</p> </div> 30 października 2017 Strona 15

2. Zmiana elementów graficznych prze najechaniu na obszar rysunku kursorem myszki skrypt plik8b.html plik8b.html <title>zmiana elementów graficznych</title> <script language="javascript" > var logo_on = new Image() ; var logo_off = new Image() ; logo_on.src = 'logo_on.gif'; logo_off.src = 'logo_off.gif' ; function activate (image) { var imagesrc = eval(image + '_on.src') ; document[image].src = imagesrc ; function deactivate (image) { var imagesrc = eval(image + '_off.src') ; document[image].src = imagesrc ; <a href="plik8b.html" onmouseover="activate('logo'); return true" onmouseout ="deactivate('logo'); return true" > <img src="logo_off.gif" alt="[logo]" style="border:none" name="logo"></a> 30 października 2017 Strona 16

3. Dynamiczne menu skrypt plik8c.html plik8c.html <title>rozwijane menu</title> <style type="text/css"> #master { width:500px; border:solid 2px skyblue; h1 { color: blue; font-size: 14pt; text-align:center td.text { color:blue; font-style:italic </style> <script language="javascript"> function pokaz (nid) { if ( document.getelementbyid('opis_' + nid).style.display == "none") { document.getelementbyid('opis_' + nid).style.display = ""; else { document.getelementbyid('opis_' + nid).style.display = "none"; <div id="master"> <h1>dynamiczne menu</h1> <table class="plan" > <tr> <td>1.</td> <td><a class="item" href="javascript:pokaz('01');">pierwsza pozycja menu</a></td> </tr> <tr style="display:none" id="opis_01"> <td /> <td class="text"> To jest tekst, który pojawia się po kliknięciu na pierwszą pozycję menu. </td> </tr> <tr> <td>2.</td> <td><a class="item" href="javascript:pokaz('02');">druga pozycja menu</a></td> </tr> <tr style="display:none" id="opis_02"> 30 października 2017 Strona 17

<td /> <td class="text"> To jest tekst, który pojawia się po kliknięciu na drugą pozycję menu. </td> </tr> <tr> <td>3.</td> <td><a class="item" href="javascript:pokaz('03');">trzecia pozycja menu</a></td> </tr> <tr style="display:none" id="opis_03"> <td /> <td class="text"> To jest tekst, który pojawia się po kliknięciu na trzecią pozycję menu. </td> </tr> </table> </div> HTML 5 element <canvas> Element <canvas> służy on do tworzenia grafiki rastrowej w oknie przeglądarki za pomocą języka JavaScript. Możesz go wykorzystać między innymi do: rysowania wykresów, tworzenia galerii zdjęć, tworzenia animacji. Jeżeli nie są oddane parametry width, oraz high przyjmują one wartości defaultowe odpowiednio 300 pixeli szerokość i 150 pixeli wysokość. Element <canvas> jest początkowo pusty żeby w nim coś wyświetlić skrypt musi mieć dostęp do jego kontekstu (czyli API). wypełniony prostokąt, którego lewy górny róg będzie w punkcie (50,30) 50 to odległość od lewej krawędzi, 30 od górnej. Szerokość wynosi 100 a wysokość 130. 30 października 2017 Strona 18

plik10a.html kwadraty z rożną transparentnością plik10a.html <title>canvas test</title> <script type="application/javascript"> function draw() { var canvas = document.getelementbyid("test"); if (canvas.getcontext) { var ctx = canvas.getcontext("2d"); ctx.fillstyle = "rgb(200,0,0)"; ctx.fillrect (10, 10, 55, 50); ctx.fillstyle = "rgba(0, 0, 200, 0.5)"; ctx.fillrect (30, 30, 55, 50); <body onload="draw();"> <canvas id="test" width="150" height="150"></canvas> 30 października 2017 Strona 19

plik10b.html <title>canvas test</title> function draw(){ var canvas = document.getelementbyid('test'); if (canvas.getcontext){ var ctx = canvas.getcontext('2d'); ctx.strokestyle = '#990000';//kolor linii ctx.strokerect(20,30,100,50);//rysujemy prostokšt bez wypełnienia ctx.fillstyle = 'green'; //definicja koloru wyepłnienie wypełnienia ctx.fillrect(21,31,98,48); //rysujemy prostokšt z wypełnieniem ctx.fillstyle = 'green'; //definicja koloru wyepłnienie wypełnienia ctx.fillrect(21,31,98,48); //rysujemy prostokšt z wypełnieniem var gradient = ctx.createradialgradient(75,75,20,75,75,45); //Tworzy obiekt gradientu radialnego // od koła o rodku (x0, y0) i promieniu r0 //do koła o rodku (x1, y1) i promieniu r1 gradient.addcolorstop(0, 'red'); //Dodaje znacznik zatrzymania koloru. Offset może być z przedziału od 0 do 1.0 gradient.addcolorstop(1, 'yellow'); ctx.fillstyle = gradient;//ustawia wypełnienie na gradient ctx.fillrect(0,81,150,70); //rysujemy prostokšt z wypełnieniem <style type="text/css"> canvas { border: 1px solid black; </style> <body onload="draw();"> <canvas id="test" width="150" height="150"></canvas> 30 października 2017 Strona 20

Prosta animacja plik10c.html plik10c.html <!DOCTYPE html> <meta charset="utf-8" /> <title>canvas Test</title> <section> <div> <canvas id="canvas" width="400" height="300"> This text is displayed if your browser does not support HTML5 Canvas. </canvas> </div> //te zmienne przechowuja wezel canvas i jego kontekst var canvas = document.getelementbyid("canvas"); var ctx = canvas.getcontext("2d"); //aktualne polozenie pileczki var x = 390; var y = 290; //o ile porusza sie pileczka w jednym kroku var dx = 2; var dy = 4; //wielkosc plotna var WIDTH = 400; var HEIGHT = 300; //rysuje pileczke function circle(x,y,r) { ctx.beginpath(); ctx.arc(x, y, r, 0, Math.PI*2, true); ctx.fill(); //rysuje prostokąt function rect(x,y,w,h) { ctx.fillrect(x,y,w,h); //czysci plotno function clear() { ctx.clearrect(0, 0, WIDTH, HEIGHT); 30 października 2017 Strona 21

//funkcja zarzadzajaca animacja function init() { canvas = document.getelementbyid("canvas"); ctx = canvas.getcontext("2d"); //funkcja rysujaca jest uruchamiana co 20ms return setinterval(draw, 20); //funkcja rysujaca klatki animacji function draw() { //czyscimy plotno clear(); //malujemy tlo animacji ctx.fillstyle = "#80ff00"; rect(0,0,width,height); //rysujemy pileczke ctx.fillstyle = "#444444"; circle(x, y, 10); //ustawiamy nowe polozenie pileczki x += dx; y += dy; //jesli dochodzimy do krawedzi to odbijamy sie if (x + dx + 10 > WIDTH x + dx - 10 < 0) dx = -dx; if (y + dy + 10> HEIGHT y + dy -10 < 0) dy = -dy; init(); </section> 30 października 2017 Strona 22