E07 "Greased Lightning"

Relevanta dokument
E07 "Greased Lightning"

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

JavaScript del 9 Dynamik och animeringar

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

E09 - Totally Tool Time

E13 "Behind the Wild"

Formulär, textsträngar och en del annat

Materialspecifikationer

JAVASCRIPT. Beteende

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

E12 "Evil is going on"

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

Lektion 3 HTML, CSS och JavaScript

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

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

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

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

Att styla webbsidor. Nivå. Uppgiften

Lektion 2 Del 1 Kapitel 6

JavaScript. DOM Scripting

F07 Stilmallar Dagens agenda

ORDLISTA WEBBDESIGN 100P

jquery Grundkurs 1 Copyright Mahmud Al Hakim

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

JavaScript. JavaScript Ramverk (Bibliotek) jquery + jquery UI

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

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

Struktur & Layout med CSS

Materialspecifikationer webb 2014

Karlstads Universitet, Datavetenskap 1

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

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

Grafiska användargränssnitt i Java

Labora&on 8 Formulär övningar/uppgi6er

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

Räkna med ASP.NET Web Forms

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

En stiligare portal Laboration 3

JS & beteende. TNMK30 - Elektronisk publicering

CSS-övningar. 1. Grunder

"HTML5 och relaterade API:er"

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

Visa och dölja element med JavaScript

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

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

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

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

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

Objektbaserad programmering

Spelprogrammering med JavaScript och HTML5

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

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

Lektion 2, Grundläggande funktioner i ASP.NET

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

Grafiska användargränssnitt i Java

Övningar i JavaScript del 5

Laboration A Objektsamlingar

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

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

Lägga till bild i e- handeln

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

Instruktioner för Articulate Storyline 2

«Sida 2 av 4 Till kursens framsida Sida 4 av 4»

Laboration 1 XML, XPath, XSLT och JSON

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

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

Appar med ryggrad. Introduktion till JavaScriptramverket Backbone

JavaScript. En Introduktion

I den här labben ska vi använda oss av en trevlig nyhet i HTML5: Local Storage, för att implementera en sorts lokal gästbok.

A. Datorn från grunden

Anvä ndärguide Nyä Expeditionsresor

En grundkurs i hemsidor och hur de är uppbyggda

LUVIT LMS Quick Guide LUVIT Composer

<Webbutvecklare lektion="02"> Kursledare: Mahmud Al Hakim

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

Grafiska användargränssnitt i Java

Webbprogrammering, DA123A, Studiematerial 4

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

CSS. TNMK30 - Elektronisk publicering

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

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

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:

Mer om grafiska komponenter. Händelsestyrda program

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

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

1

E12 "Evil is going on"

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

Skeleton plane & Responsiv webbdesign med CSS

6. Nu skall vi ställa in vad som skall hända när man klickar på knappen samt att markören skall ändra sig till en hand när markören är på knappen.

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

PageSpeed Insights. Det finns 2 omdirigeringar. Omdirigeringar gör att det tar längre tid innan sidan kan läsas in.

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

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Användargränssittet (Front-end) i mobilversionen bygger i stor utsträckning på jquery Mobile-ramverket.

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

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

Instruktioner för Articulate Studio 13

Programmering i C++ EDA623 Mer om klasser. EDA623 (Föreläsning 6) HT / 26

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

Transkript:

E07 "Greased Lightning" Föreläsning 7, HT2012 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.getelementbyid("discovery"); node.style.color = "#AA5698"; Eftersom bindestreck inte är ett giltigt tecken på en egenskap gör man följande: font-size margin-left fontsize marginleft...... Float cssfloat Tyvärr är det problem att använda style tillsammans med setattribute i IE <= 7. Undvik därför: 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");.js node.classname = "jschanged"; /* Dynamicly assigned classes (via JavaScript) */.jschanged { color: red; background-color: #12AC8B; }.css node.setattribute("class", "jschanged"); Tyvärr är det problem att använda class tillsammans med setattribute i IE <= 7.

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 till en klass Ta bort Om inte satt: sätt, annars ta bort Är klassen är satt? (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 1 2 onclick ondblclick onmousedown onmouseup onmousemove Inträffar då ett element aktiveras. Antingen genom att man klickar på elementet eller om man på en länk trycker enter. Inträffar då man dubbelklickar på ett element. Använd inte denna tillsammans med onclick. Inträffar när musknappen trycks ned. Inträffar då musknappen släpps upp. (Efter detta event körs onclick) 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 onkeydown onkeypress Inträffar när en tangentbordstangent släpps upp. Inträffar när en tangentbordstangent trycks ned. Snarlik onkeydown, men tillåter att man hindrar tangentinmatningen från att ske. window.onload window.onresize window.onscroll Inträffar när sidan laddat klart. Inträffar när fönstret ändrar storlek. Inträffar i FF först efter fönstret ändrat storlek. 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){ if(!e){e = window.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)); return false; Genom att returnera false, hindrar vi bokstaven från att skrivas ut Kopplar du hanteraren med addeventlistener skriver du: e.preventdefault();