JavaScript a SVG Cvičení 2 Z8144 Počítačová grafika v kartografii Jaro 2019 Šimon Leitgeb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol Jednoduché tvary Lomené tvary, texty 1. úkol Základní tvary – opakování rectangle rect obdélník/čtverec circle circle kruh ellipse ellipse elipsa line line úsečka polygon polygon polyline polyline lomená čára path path trasa text text Šimon Leitgeb JavaScript a SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol Jednoduché tvary Lomené tvary, texty 1. úkol Obdélník / čtverec → → Šimon Leitgeb JavaScript a SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol Jednoduché tvary Lomené tvary, texty 1. úkol Kruh / elipsa Šimon Leitgeb JavaScript a SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol Jednoduché tvary Lomené tvary, texty 1. úkol Úsečka Šimon Leitgeb JavaScript a SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol Jednoduché tvary Lomené tvary, texty 1. úkol Lomená čára → → Šimon Leitgeb JavaScript a SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol Jednoduché tvary Lomené tvary, texty 1. úkol Plygon (N-úhelník) Šimon Leitgeb JavaScript a SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol Jednoduché tvary Lomené tvary, texty 1. úkol Text Počítačová grafikav kartografii Počítačová grafika v kartografii Šimon Leitgeb JavaScript a SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol Jednoduché tvary Lomené tvary, texty 1. úkol Trasa Path Velká písmena – absolutní pozice malá písmena – relativní pozice moveto M(x y)+ (posun na místo) closepath Z- (uzavření trasy) lineto L(x y)+ (vykresli čáru až do bodu) horizontal lineto H(x)+ (rovnoběžná čára až do) vertical lineto V(y)+ (svislá čára) curveto C(x1 y1 x2 y2 x y)+ smooth curveto S(x2 y2 x y)+ quadratic Bézier curve Q(x1 y1 x y)+ smooth quadratic Bézier curveto T(x y)+ elliptical Arc A(…) (eliptická výšeč/úseč) http://www.w3.org/TR/SVG/paths.html Šimon Leitgeb JavaScript a SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol Jednoduché tvary Lomené tvary, texty 1. úkol Trasa – příklad 1 Šimon Leitgeb JavaScript a SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol Jednoduché tvary Lomené tvary, texty 1. úkol Trasa – příklad 2 Šimon Leitgeb JavaScript a SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol Jednoduché tvary Lomené tvary, texty 1. úkol 1. úkol V SVG: vytvořte sněhuláka pomocí 3 kruhů, nos (mrkev) jako trojúhelník a oči vytvořte hvězdu pomocí trasy můžete použít CodePen (http://codepen.io/pen/) Šimon Leitgeb JavaScript a SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol onclick onmouseover / onmouseout onkeydown / onkeyup 2. úkol JavaScript – základní eventy (události) onclick kliknutí myší onmouseover najetí myší na prvek onmouseout odjetí myší z prvku onkeydown stisk klávesy onkeyup konec stisku klávesy Šimon Leitgeb JavaScript a SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol onclick onmouseover / onmouseout onkeydown / onkeyup 2. úkol onclick

Testovací div

Příklad: https://codepen.io/LeSimon/pen/ywgovB Šimon Leitgeb JavaScript a SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol onclick onmouseover / onmouseout onkeydown / onkeyup 2. úkol onmouseover / onmouseout function testmouseover(element){ element.style.backgroundColor='green'; }; function testmouseout(element){ element.style.backgroundColor='red'; };

Testovací div

Příklad: https://codepen.io/LeSimon/pen/oVBeqe Šimon Leitgeb JavaScript a SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol onclick onmouseover / onmouseout onkeydown / onkeyup 2. úkol onkeydown / onkeyup function testKeyUp(event){ event.target.style.backgroundColor='red'; } function testKeyDown(event){ event.target.style.backgroundColor='green'; } document.getElementById("input").addEventListener("keyup", testKeyUp);→ document.getElementById("input").addEventListener("keydown", testKeyDown);→ → Příklad: https://codepen.io/LeSimon/pen/ywgoEL Šimon Leitgeb JavaScript a SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol onclick onmouseover / onmouseout onkeydown / onkeyup 2. úkol 2. úkol Pomocí HTML a JS: Vytvořte odstavec(div) s textem, který po najetí myši změní tloušťku písma na tučné(fontWeight:bold) a po odjetí myší se změní zpátky na normální text(fontWeight:normal). Můžete použít CodePen (http://codepen.io/pen/) Šimon Leitgeb JavaScript a SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol Eventy v SVG JavaScript – práce s SVG V zásadě stejné jako doposud s HTML. Šimon Leitgeb JavaScript a SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol Eventy v SVG Eventy v SVG dokumentu Šimon Leitgeb JavaScript a SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol Eventy v SVG Eventy pomocí JS const theCircle = document.getElementById("thecircle"); function circleOver(event){ event.target.setAttribute('fill', 'green'); } function circleOut(event){ event.target.setAttribute('fill', 'red'); } theCircle.addEventListener("mouseover", circleOver); theCircle.addEventListener("mouseout", circleOut); Šimon Leitgeb JavaScript a SVG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SVG 2 JavaScript – eventy SVG + JavaScript Domácí úkol Domácí úkol vytvořte svg objekt obsahující červený kruh po kliknutí na kruh tento zmizí a na jiném místě se vytvoří nový (použijte event onclick) úlohu je možné řešit více způsoby, dobře promyšlené řešení vám ušetří spoustu úsilí úkol odevzdávejte jako jeden HTML soubor nebo archiv .zip Šimon Leitgeb JavaScript a SVG Díky za pozornost! https://discord.gg/UHTPUDU . . . . . . . . . . . . . . . . . . . .