E07 "Greased Lightning"

Relevanta dokument
E07 "Greased Lightning"

E11 "Protection" Föreläsning 11, HT2014 Säkerhet, tillgänglighet. Johan Leitet. Kurs: 1dv403 Webbteknik I

JavaScript del 9 Dynamik och animeringar

E09 - Totally Tool Time

E12 "Evil is going on"

E13 "Behind the Wild"

JAVASCRIPT. Beteende

Laboration 6 Formulär och stränghantering övningar/uppgifter

Materialspecifikationer

Att styla webbsidor. Nivå. Uppgiften

TDDD52 CSS. Färger. Färger 1/3/13

JavaScript. JavaScript Ramverk (Bibliotek) jquery + jquery UI

Det ska endast finnas två bilder av samma typ på spelplanen.

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

Formulär, textsträngar och en del annat

F07 DOM/BOM. Föreläsning 7, HT2013 Document Object Model Browser Object Model. Johan Leitet. Kurs: 1DV435 Klientbaserad Webbutveckling

JavaScript. DOM Scripting

Föreläsning 4. CSS Stilmallar för webben

Labora&on 5 CSS och layout samt fråga E övningar/uppgi>er

ORDLISTA WEBBDESIGN 100P

Lektion 3 HTML, CSS och JavaScript

F07 Stilmallar Dagens agenda

E13 Behind the Wild. Dagens agenda. Cookies Context/ändra context Augmentation (förstärkning) Klassiskt arv Att låna metoder Namespaces Postludium

Programmeringteknik. Planering MÅL LABB: MOMENT LAB4 HTML - EXEMPEL HTML. Webbdelen

Lektion 2 Del 1 Kapitel 6

Labora&on 8 Formulär övningar/uppgi6er

JS & beteende. TNMK30 - Elektronisk publicering

jquery Grundkurs 1 Copyright Mahmud Al Hakim

Struktur & Layout med CSS

Materialspecifikationer webb 2014

CSS-övningar. 1. Grunder

Visa och dölja element med JavaScript

Karlstads Universitet, Datavetenskap 1

Räkna med ASP.NET Web Forms

Spelprogrammering med JavaScript och HTML5

! HTML Formulär! JavaScript! Syntax! Events! DOM. ! URL variabler i en query string (get) ! HTTP post request (post)

Lektion 2 - CSS. CSS - Fortsätt så här

"HTML5 och relaterade API:er"

Grafiska användargränssnitt i Java

1ME323 Webbteknik 3 Lektion 6 API. Rune Körnefors. Medieteknik Rune Körnefors

07/12/2015. Stilmallar. - styra utseendet av webbplatsen DEL 1. Karin Fahlquist. index.html. iecept.html frukt.html grönsaker.html

EDA095 HTML. Per Andersson. April 26, Lund University Innehåll: HTML, CSS, DOM, JavaScript

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

E03 "Day 3: 2:00 p.m 3:00 p.m"

Förkunskaper: Tim Berners Lees vision webbläsarkriget W3C strukturtagg <h1> layout-tagg <font size="6">

Webbprogrammering, DA123A, Studiematerial 4

PageSpeed Insights. Ta bort JavaScript- och CSS-kod som blockerar renderingen från innehåll ovanför mitten

Övning (X)HTML 2. Sidan 1 av

Appar med ryggrad. Introduktion till JavaScriptramverket Backbone

21/01/2016. Stilmallar. styra utseendet av webbplatsen DEL 1. Karin Fahlquist. index.html. recept.html frukt.html grönsaker.html

TDP013. Webbprogrammering och interaktivitet. AJAX, CORS & jquery. Marcus Bendtsen Institutionen för Datavetenskap (IDA)

E12 "Evil is going on"

Övning 1 Vi börjar med en vanlig html-fil där html används för både innehåll och utseende:

Lektion 2, Grundläggande funktioner i ASP.NET

För att skriva CSS-kod använder man sig av olika kommandon. Ett exempel på hur man kan skriva kod för att ändra textfärg kan vara:

Innehåll Introduktion... 3 InteractiveScene.config... 3 Scener <scenes>... 3 Typsnitt <fonts>... 3 Övergångar <transitions>...

Labora&on 5 Dynamisk HTML och &mers övningar/uppgi=er

Objektorienterad programmering Föreläsning 15. Grafiska användargränssnitt (GUI Graphical User Interface)

En grundkurs i hemsidor och hur de är uppbyggda

Laboration A Objektsamlingar

Att stjäla kod på ett intelligent sätt

Labora&on 2 HTML och validering övningar/uppgi:er

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

En stiligare portal Laboration 3

WEBBUTVECKLING CSS. Formatmallar - CSS

Xhtml och CSS.Tillämpad fysik och elektronik Per Kvarnbrink (redigering Ulf Holmgren 2011)

Internet och WWW Laboration 3 VT10 Högskolan Dalarna Hans Rosendahl. Laboration 3 CSS del 2. 1 av 20

Övnings hemtentamen med förslag till lösning, webbprogrammering

A" utveckla kartor med responsiv design. Johan Lah8 Geografisk IT- utvecklare Stadsbyggnadskontoret, Malmö stad

A. Datorn från grunden

Laboration 1 XML, XPath, XSLT och JSON

Repetition. Hypertext. Internet HTTP. Server och klient Text försedd med länkar till andra texter. Många sammankopplade nät

Repetition. Hypertext. Internet HTTP. Server och klient Föreläsning 2. Text försedd med länkar till andra texter. Många sammankopplade nät

/*formatering för html och body elementen - elementens höjd sträcker sig över hela webbläsarfönstrets höjd*/ html, body { height: 100%; }

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion

Labora&on 6 CSS och responsiv webbdesign övningar/uppgi:er

Grafiska användargränssnitt i Java

LUVIT LMS Quick Guide LUVIT Composer

Objektbaserad programmering

JavaScript. En Introduktion

Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document

Övningar i JavaScript del 5

EDA095 JavaScript. Per Andersson. Maj 4, Lund University Per Andersson EDA095 JavaScript Maj 4, / 23

12/9/2010 REGLER WEBBPRODUKTION WEBBDESIGN CASCADING STYLE SHEETS CSS LOKALA STILMALLAR GLOBALA STILMALLAR. Selektor. Deklaration

public class Main extends MovieClip { var hillpage:hillpage; var ifpage:ifpage;

1

Tillämpad fysik och elektronik Per Kvarnbrink m.fl. Laboration 2: HTML och CSS.

if (n==null) { return null; } else { return new Node(n.data, copy(n.next));

Introduk+on +ll programmering i JavaScript

Labora&on 4 CSS och validering övningar/uppgi9er

L04.1 Marodören. Inledning. Mål. Genomförande. Uppgift 1 Hello World. Moment I

Labora&on 1 Variabler och beräkningar övningar/uppgi9er

Fönsterhanterare i JavaScript PWD, Personal Web Desktop

DOM (Document Object Model) är modellen efter vilken en webbläsaren är uppbyggd. Alla objekt/element i webbläsaren finns hierarkiskt ordnade i DOM.

Labora&on 1 Introduk&on &ll utvecklingsmiljön övningar/uppgi<er

INTRODUKTION TILL ANGULAR JS

Lägga till bild i e- handeln

Labb 3: ASP.NET 4.5 Anpassningar av användargränssnittet: Master Pages, Teman, och Kontroller

Instruktioner för Articulate Storyline 2

Laboration 2: Xhtml och CSS.

Transkript:

E07 "Greased Lightning" Föreläsning 7, HT2014 CSS och Event Kurs: 1dv403 Webbteknik I Johan Leitet

E07 Greased Lightning Dagens agenda CSS-egenskaper Händelsestyrd programmering Händelsehanterare Typer av händelser

Ändra CSS-egenskaper Vi kommer åt stilegenskaper genom egenskapen style på våra noder: var node = document.queryselector("#discovery"); node.style.color = "#AA5698"; Eftersom bindestreck inte är ett giltigt tecken på en egenskap gör man följande: font- size fontsize margin- le* marginle*...... Float cssfloat node.setattribute("style", "font-size:12px; color:red;");

Inline styles Om vi sätter stilattribut med ex. style.color kommer HTML-outputen att ändras till: <a href="buster.html" id="discovery" style="color:red; ">

Undvik uppblandning av lager Om vi ändrar CSS-koden i JavaScript så innebär detta att utseendet på sidan blir svåruppdaterat eftersom Uppförandelagret innehåller Presentationslagerkod. Utnyttja css-klasser! var node = document.getelementbyid("discovery"); node.classname = "jschanged";.js /* Dynamicly assigned classes (via JavaScript) */.jschanged { color: red; } background-color: #12AC8B;.css node.setattribute("class", "jschanged");

HTML5 classlist var node = document.getelementbyid("discovery"); node.classlist.add("jschanged"); node.classlist.add( värde ) node.classlist.remove( värde ) node.classlist.toggle( värde ) node.classlist.contains( värde ) Lägg 7ll en klass Ta bort Om inte sa<: sä<, annars ta bort Är klassen är sa<? (bool) IE 10+ Android 3.0+ FF 3.6+ ios 5+ Chrome 8+ Safari 5.1+ Opera 11.5+

Inline styles I vissa fall är det dock nödvändigt att uppdatera CSSkoden direkt ifrån JavaScript: var node = document.getelementbyid("discovery"); node.style.left = xpixel + "px"; node.style.top = ypixel + "px";

Händelsestyrd programmering

Händelser Mushändelser click, dblclick, mousedown, mouseout, mouseover, mouseup, mousemove Tangentbordshändelser keydown, keypress, keyup HTML-händelser load, unload, abort, error, select, change, submit, reset, resize, scroll, focus, blur Användargränsnittshändelser DOMFocusIn, DOMFocusOut, DOMActivate Mutationshändelser DOMSubtreeModified, DOMNodeInserted, DOMNodeRemoved, DOMNodeInsertedIntoDocument, DOMNodeRemovedFromDocument, DOMAttrModified, DOMCharacterDataModified, DOMContentLoaded

Händelsehanterare En händelsehanterare (event handler, event listener) är den som anropas då en händelse (event) inträffar. on load on focus on click on keydown on blur

Koppla händelsehanterare Man kan göra så här: <a href="buster.html" onclick="jumpfrombuilding();"> Men det är inte rätt... 1) Vi vill undvika att blanda javascriptkod med HTML-kod 2) Varje gång koden ska köras behöver en javascripttolk dras igång för att tolka koden.

1 Koppla händelsehanterare Snyggare är att koppla ihop detta i JS-koden: <a href="buster.html" id="crasher">.html var link = document.getelementbyid("crasher"); link.onclick = jumpfrombuilding;.js function jumpfrombuilding(){ alert("jumping!"); } link.onclick = function(){ return jumpfrombuilding(143); };.js function jumpfrombuilding(nr){ alert("jumping! "+nr); } Ovanstående modell har några nackdelar, bland annat kan vi inte koppla flera lyssnare till samma event. W3C har därför ett annat sätt att göra detta på...

2 Koppla händelsehanterare DOM Level 2 definierar ett annat sätt att koppla event på: var link = document.getelementbyid("crasher"); 1 2 link.addeventlistener("click", jumpfrombuilding, false); link.addeventlistener("click", getupagain, false); link.removeeventlistener("click", jumpfrombuilding, false); link.removeeventlistener("click", getupagain, false); I IE < 9 så finns inte addeventlistener utan den egna attachevent. Läs mer om detta i litteraturen eller på: https://developer.mozilla.org/en/dom/element.addeventlistener

Vad triggade eventet? Det finns ett enkelt sätt att få reda på vad som triggade eventet (utlöste händelsen): var link = document.getelementbyid("crasher"); link.onclick = jumpfrombuilding; function jumpfrombuilding(){ } alert(this === link); // true this refererar till det objekt som "äger" funktionen, triggar eventet

that=this function Experiment(bombText){ this.getbombtext = function(){ return bombtext;}; var atag = document.getelementbyid("mylink"); var that = this; } atag.onclick = function(){ alert(this.getbombtext()); // Fail alert(that.getbombtext()); // "BOOOOOOM" }; new Experiment("BOOOOOOM");

Hindra defulthändelsen När du klickar på en länk kommer först onclick att köras och efter det kommer länken att aktiveras och gå till den sida som är angiven i href. För att hindra detta returnerar man false från händelsehanteraren. <a href="buster.html" id="crasher"> var link = document.getelementbyid("crasher"); link.onclick = function(){ } dosomestuffhere(); return false; (kopplar du eventet med addeventlistener så gör du detta på annat sätt)

Större exempel På en sida som visar produkter vill man ha funktionalitet så att enbart produktrubrikerna visas till dess att man klickar på en rubrik. När detta görs så ska produktinformation visas under rubriken. Om man klickar på en länk där produktinformationen visas ska informationen döljas igen. Sidan ska fungera utan att JavaScript, men då ska all produktinformation visas direkt. Utan JavaScript: Med JavaScript klick

Spåra mushändelser 3 onclick Inträffar då ett element aktiveras. Antingen genom att man klickar på elementet eller om man på en länk trycker enter. ondblclick Inträffar då man dubbelklickar på ett element. Använd inte denna tillsammans med onclick. 1 2 onmousedown Inträffar när musknappen trycks ned. onmouseup Inträffar då musknappen släpps upp. (Efter detta event körs onclick) onmousemove Inträffar då muspekaren flyttar sig. Kastas varje gång detta inträffar. När detta event kastas har man ofta nytta av att läsa av muspositionen men detta blir litekomplicerat då implementationen skiljer sig markant mellan webbläsarna. Läs mer i litteraturen om du vill laborera med detta.

Fler händelser onkeyup Inträffar när en tangentbordstangent släpps upp. onkeydown Inträffar när en tangentbordstangent trycks ned. onkeypress Snarlik onkeydown, men tillåter att man hindrar tangentinmatningen från att ske. window.onload Inträffar när sidan laddat klart. window.onresize Inträffar när fönstret ändrar storlek. Inträffar i FF först efter fönstret ändrat storlek. window.onscroll Inträffar när användaren skrollar fönstret. window.onunload Inträffar användaren stänger browsern eller går till annan sida.

Information om eventet var link = document.getelementbyid("crasher"); link.onclick = jumpfrombuilding; function jumpfrombuilding(e){ e = e event; // IE-fix } // e innehåller nu information e innehåller nu bland annat information om vilket objekt som triggat händelsen med mera. Även specifik information om vilken tangent som tryckts, var muspekaren befinner sig etc. finns att tillgå här.

Läs av tangenttryckning inputbox.onkeypress = showkeypress;... showkeypress(e) { if(!e){ e = window.event; } var bokstav = e.keycode; } alert(string.fromcharcode(bokstav)); e.preventdefault(); Vi hindrar bokstaven från att skrivas ut. return false fungerar också.

Event-delegat event.target event.currenttarget Noden som triggat eventet Noden som händelsehanteraren är kopplad 7ll. var ul = document.queryselector("#lista"); ul.onclick = function(e){ console.log(e.target); //<li> </li> console.log(e.currenttarget); // <ul> </ul> === this }; console.log(e.target.firstchild.nodevalue); N. Zakas 498

Douglas Crockford never clicks, he just fires events - with his mind. Källa: http://twitter.com/crockfordfacts