SlideShare a Scribd company logo
JavaScript
… och JavaScript-ramverket jQuery
Reflektioner kring
CSS/Ramverk?
Dagens föreläsing
• JavaScript?
• JavaScript – syntax?
• JavaScript – att leta upp element i HTML-dokumentet
• JavaScript – att manipulera element i HTML-
dokumentet
• JavaScript – exempel
• jQuery – Ett av många JavaScript-ramverk för front-end
• jQuery – syntax?
• jQuery – Exempel
Var passar JavaScript in?
JavaScript
CSS
HTML
Innehåll
Interaktivitet
Utformning
Struktur
Innehåll
JavaScript lever i
din webbläsare
Allt som behövs för att köra JavaScript är en webbläsare
– smidigt värre!
Har ni sett det innan?
JavaScript – varför?
• Vi vill ge liv till annars statiska webbsidor!
• T.ex.
 Automatiskt modifiera dynamiskt innehåll
 Facebook
 Twitter
 Gmail
 Diverse beräkningar
 T.ex. valutakonverteringar
 Förbättrade GUI
 Animeringar
 Lägga till/ta bort/modifiera befintliga HTML-element
JavaScript - exempel
• http://valuta.se
• http://yensdesign.com/tutorials/validateform/
• http://www.phoboslab.org/ztype/
JavaScript - Historik
• Utvecklades av Netscape under mitten av 90-talet
• Har inget med Java att göra – det är ett eget
programmeringsspråk
• Microsoft skapade sin egen verision av JavaScript –
Jscript
• På senare dagar (2005) har ajax blivit en populärt
• Lägger till extra funktionalitet för webben och
webbläsare
Vad kan man göra med
JavaScript?
• I princip vad du vill!
• Men det används ofta till att skapa interaktiva
webbsidor
• Med interaktiv menas: Reagera på användaras
handlingar och modifiera webbsidans innehåll
JavaScript
• JavaScript skrivs som ren text
• Det kan skrivas antingen inbäddat direkt i HTML-
koden
• Eller i en separat fil, som sedan inkluderas i HTML-
dokumentet
JavaScript - Var skrivs det?
JavaScript som
programmeringsspråk
• Ett högnivåspråk
• Ett otypat språk
• Ett skriptspråk
• Ni kan programmera, så efter lite träning med syntaxen
så borde det inte vara några problem att komma igång
=)
Exempel på syntax
Att hitta element genom JS
• En stor fördel med JS är att vi kan leta upp HTML-
element!
• Vi kan leta upp detta genom att:
 Ange typen av element (t.ex. alla <p>-element)
 Ange klassen för ett element (t.ex. alla element med klassen
”blue”)
 Ange ett id för ett element
• Jämför detta med hur vi använder CSS för att hitta våra
element.
Exempel på att hitta element
Användardrivet GUI
• Vi ”lyssnar” efter användarens handlingar, som t.ex.
 Klick
 Musrörelser
 Svepningar
 M.m.
• Vi kan sedan koppla ihop dessa handlingar med element
– och sedan koppla detta till en funktion
Att modifiera element
• Vi kan ändra attribut för element
• Vi kan ändra CSS för element
• Vi kan ändra text för element
• Vi kan lägga till nya element
• Vi kan ta bort element
Exempel på att modifiera
element
”this” – att referera till elementet
som utlöste händelsen
• ”this” som nyckelord är väldigt händigt att hantera – på
så sätt behöver vi inte ”leta upp” elementet som utlöste
händelsen mer än en gång.
Exempel med
JavaScript
Hitta & manipulera element
DOM
• Trädstruktur som motsvarar taggarnas ordning/nästling
• Varje element är en ”nod” i trädet
• Relationer mellan noderna beskrivs med förälder/barn och syskon
Källkod vs. noder
Använda DOM
• I JavaScript kan man alltid komma åt DOM via objektet
”document”
• Därifrån kan vi ”navigera” genom trädet
// referens till body-elementet:
document.body
// lista över alla element i body
document.body.childNodes
Att navigera i DOM
• Vi antar att ”node” är en nod/element i DOM-trädet
// Navigera mellan noder på samma nivå
node.nextSibling
node.previousSibling
// Nedåt, barnnoder
node.firstChild
node.lastChild
node.childNodes // alla barn
// Uppåt, förälder
node.parentNode
Exempel - DOM
Att hämta värde från formulär
localStorage – Att spara data
hos klienten
• Vi kan spara data lokalt (text-strängar) hos användaren.
 Typ som cookies, men är inte begränsade på samma sätt
gällande längden på det som sparas
 Enklare att hantera än cookies
• Sparas i nyckel: värde format (som ett lexikon)
Exempel på localStorage
localStorage.setItem("Name", "Anton");
localStorage.getItem("Name"); // Returnerar "Anton"
jQuery – ett JS-
ramverk
Varför ramverk?
• Snabbare utveckling
• Inbyggda funktioner
• Animeringar och andra effekter
• Cross-browser lösningar
jQuery – Referera till element
• Att referera till element (”CSS”-referenser)
$(”#id”);
document.querySelectorAll(”#id”);
• Att referera till taggar
$(”a”);
document.querySelectorAll(”a”);
• Att referera till klasser
$(”.blue”);
document.querySelectorAll(”.blue”);
jQuery – navigera i DOM
• Document.getElementById(”id”).nextsibling;
$(”#id”).next();
• Document.getElementById(”id”).childNodes;
$(”#id”).children();
• Document.getElementById(”id”).parentNode;
$(”#id”).parent();
Att använd funktioner i
jQuery
• Att dölja ett element:
document.getElementById(”id”).style.display = ”none”;
$(”#id”).hide();
• Att tona in ett element (animering):
$(”#id”).fadeIn(1000);
jQuery -
dokumentation

More Related Content

What's hot

VT17 - DA355A - Introduktion till CSS
VT17 - DA355A - Introduktion till CSSVT17 - DA355A - Introduktion till CSS
VT17 - DA355A - Introduktion till CSS
Anton Tibblin
 
HT17 - DA156A - Introduktion till CSS
HT17 - DA156A - Introduktion till CSSHT17 - DA156A - Introduktion till CSS
HT17 - DA156A - Introduktion till CSS
Anton Tibblin
 
HT17 - DA156A - CSS, Layout 2
HT17 - DA156A - CSS, Layout 2HT17 - DA156A - CSS, Layout 2
HT17 - DA156A - CSS, Layout 2
Anton Tibblin
 
HT16 - DA156A - CSS, layout
HT16 - DA156A - CSS, layoutHT16 - DA156A - CSS, layout
HT16 - DA156A - CSS, layout
Anton Tibblin
 
HT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursenHT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursen
Anton Tibblin
 
HT16 - DA156A - Introduktion till HTML
HT16 - DA156A - Introduktion till HTMLHT16 - DA156A - Introduktion till HTML
HT16 - DA156A - Introduktion till HTML
Anton Tibblin
 
VT16 - DA355A - Layout med CSS
VT16 - DA355A - Layout med CSSVT16 - DA355A - Layout med CSS
VT16 - DA355A - Layout med CSS
Anton Tibblin
 
VT17 - DA355A - Responsive design
VT17 - DA355A - Responsive designVT17 - DA355A - Responsive design
VT17 - DA355A - Responsive design
Anton Tibblin
 
HT16 - DA156A - Kursintroduktion
HT16 - DA156A - KursintroduktionHT16 - DA156A - Kursintroduktion
HT16 - DA156A - Kursintroduktion
Anton Tibblin
 
HT19 - DA354A - Webbprogrammering med bottle
HT19 - DA354A - Webbprogrammering med bottleHT19 - DA354A - Webbprogrammering med bottle
HT19 - DA354A - Webbprogrammering med bottle
Anton Tibblin
 
HT20 - DA106A - Kursintroduktion
HT20 - DA106A - KursintroduktionHT20 - DA106A - Kursintroduktion
HT20 - DA106A - Kursintroduktion
Anton Tibblin
 
HT17 - DA156A - Introduktion till HTML
HT17 - DA156A - Introduktion till HTMLHT17 - DA156A - Introduktion till HTML
HT17 - DA156A - Introduktion till HTML
Anton Tibblin
 
VT18 - DA355A - Introduktion till JavaScript
VT18 - DA355A - Introduktion till JavaScriptVT18 - DA355A - Introduktion till JavaScript
VT18 - DA355A - Introduktion till JavaScript
Anton Tibblin
 
VT18 - DA355A - Introduktion till CSS
VT18 - DA355A - Introduktion till CSSVT18 - DA355A - Introduktion till CSS
VT18 - DA355A - Introduktion till CSS
Anton Tibblin
 
jQuery and Ajax
jQuery and AjaxjQuery and Ajax
jQuery and Ajax
Anton Tibblin
 
HT17 - DA156A - Kursintroduktion
HT17 - DA156A - KursintroduktionHT17 - DA156A - Kursintroduktion
HT17 - DA156A - Kursintroduktion
Anton Tibblin
 
HT16 - DA156A - Tabeller och formulär
HT16 - DA156A - Tabeller och formulärHT16 - DA156A - Tabeller och formulär
HT16 - DA156A - Tabeller och formulär
Anton Tibblin
 
VT18 - DA355A/DA344A - Introduktion till HTML
VT18 - DA355A/DA344A - Introduktion till HTMLVT18 - DA355A/DA344A - Introduktion till HTML
VT18 - DA355A/DA344A - Introduktion till HTML
Anton Tibblin
 
HT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScriptHT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScript
Anton Tibblin
 
HT17 - DA156A - Tabeller & Formulär
HT17 - DA156A - Tabeller & FormulärHT17 - DA156A - Tabeller & Formulär
HT17 - DA156A - Tabeller & Formulär
Anton Tibblin
 

What's hot (20)

VT17 - DA355A - Introduktion till CSS
VT17 - DA355A - Introduktion till CSSVT17 - DA355A - Introduktion till CSS
VT17 - DA355A - Introduktion till CSS
 
HT17 - DA156A - Introduktion till CSS
HT17 - DA156A - Introduktion till CSSHT17 - DA156A - Introduktion till CSS
HT17 - DA156A - Introduktion till CSS
 
HT17 - DA156A - CSS, Layout 2
HT17 - DA156A - CSS, Layout 2HT17 - DA156A - CSS, Layout 2
HT17 - DA156A - CSS, Layout 2
 
HT16 - DA156A - CSS, layout
HT16 - DA156A - CSS, layoutHT16 - DA156A - CSS, layout
HT16 - DA156A - CSS, layout
 
HT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursenHT17 - DA156A - Sammanfattning av kursen
HT17 - DA156A - Sammanfattning av kursen
 
HT16 - DA156A - Introduktion till HTML
HT16 - DA156A - Introduktion till HTMLHT16 - DA156A - Introduktion till HTML
HT16 - DA156A - Introduktion till HTML
 
VT16 - DA355A - Layout med CSS
VT16 - DA355A - Layout med CSSVT16 - DA355A - Layout med CSS
VT16 - DA355A - Layout med CSS
 
VT17 - DA355A - Responsive design
VT17 - DA355A - Responsive designVT17 - DA355A - Responsive design
VT17 - DA355A - Responsive design
 
HT16 - DA156A - Kursintroduktion
HT16 - DA156A - KursintroduktionHT16 - DA156A - Kursintroduktion
HT16 - DA156A - Kursintroduktion
 
HT19 - DA354A - Webbprogrammering med bottle
HT19 - DA354A - Webbprogrammering med bottleHT19 - DA354A - Webbprogrammering med bottle
HT19 - DA354A - Webbprogrammering med bottle
 
HT20 - DA106A - Kursintroduktion
HT20 - DA106A - KursintroduktionHT20 - DA106A - Kursintroduktion
HT20 - DA106A - Kursintroduktion
 
HT17 - DA156A - Introduktion till HTML
HT17 - DA156A - Introduktion till HTMLHT17 - DA156A - Introduktion till HTML
HT17 - DA156A - Introduktion till HTML
 
VT18 - DA355A - Introduktion till JavaScript
VT18 - DA355A - Introduktion till JavaScriptVT18 - DA355A - Introduktion till JavaScript
VT18 - DA355A - Introduktion till JavaScript
 
VT18 - DA355A - Introduktion till CSS
VT18 - DA355A - Introduktion till CSSVT18 - DA355A - Introduktion till CSS
VT18 - DA355A - Introduktion till CSS
 
jQuery and Ajax
jQuery and AjaxjQuery and Ajax
jQuery and Ajax
 
HT17 - DA156A - Kursintroduktion
HT17 - DA156A - KursintroduktionHT17 - DA156A - Kursintroduktion
HT17 - DA156A - Kursintroduktion
 
HT16 - DA156A - Tabeller och formulär
HT16 - DA156A - Tabeller och formulärHT16 - DA156A - Tabeller och formulär
HT16 - DA156A - Tabeller och formulär
 
VT18 - DA355A/DA344A - Introduktion till HTML
VT18 - DA355A/DA344A - Introduktion till HTMLVT18 - DA355A/DA344A - Introduktion till HTML
VT18 - DA355A/DA344A - Introduktion till HTML
 
HT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScriptHT16 - DA156A - Introduktion till JavaScript
HT16 - DA156A - Introduktion till JavaScript
 
HT17 - DA156A - Tabeller & Formulär
HT17 - DA156A - Tabeller & FormulärHT17 - DA156A - Tabeller & Formulär
HT17 - DA156A - Tabeller & Formulär
 

Viewers also liked

Intro to Javascript
Intro to JavascriptIntro to Javascript
Intro to JavascriptKevin Ball
 
Intro to JavaScript
Intro to JavaScriptIntro to JavaScript
Intro to JavaScript
Dan Phiffer
 
Intro to JavaScript
Intro to JavaScriptIntro to JavaScript
Intro to JavaScript
Yakov Fain
 
Intro to Javascript
Intro to JavascriptIntro to Javascript
Intro to Javascript
Anjan Banda
 
NodeJs Intro - JavaScript Zagreb Meetup #1
NodeJs Intro - JavaScript Zagreb Meetup #1NodeJs Intro - JavaScript Zagreb Meetup #1
NodeJs Intro - JavaScript Zagreb Meetup #1Tomislav Capan
 
Intro to javascript (4 week)
Intro to javascript (4 week)Intro to javascript (4 week)
Intro to javascript (4 week)
Jamal Sinclair O'Garro
 
Intro to JavaScript
Intro to JavaScriptIntro to JavaScript
Intro to JavaScript
Alessandro Muraro
 
Javascript intro for MAH
Javascript intro for MAHJavascript intro for MAH
Javascript intro for MAH
Aleksander Fabijan
 
JavaScript Intro
JavaScript IntroJavaScript Intro
JavaScript Intro
Eric Brown
 
Javascript Intro 01
Javascript Intro 01Javascript Intro 01
Javascript Intro 01vikram singh
 
Intro to Javascript and jQuery
Intro to Javascript and jQueryIntro to Javascript and jQuery
Intro to Javascript and jQueryShawn Calvert
 
Basics of JavaScript
Basics of JavaScriptBasics of JavaScript
Basics of JavaScript
Bala Narayanan
 
Mineral
MineralMineral
Mineral
sara caushi
 
Qelqi
QelqiQelqi
Le Wagon - Javascript for Beginners
Le Wagon - Javascript for BeginnersLe Wagon - Javascript for Beginners
Le Wagon - Javascript for Beginners
Sébastien Saunier
 
Fundamental JavaScript [UTC, March 2014]
Fundamental JavaScript [UTC, March 2014]Fundamental JavaScript [UTC, March 2014]
Fundamental JavaScript [UTC, March 2014]
Aaron Gustafson
 
Introduction to JavaScript
Introduction to JavaScriptIntroduction to JavaScript
Introduction to JavaScript
Bryan Basham
 
Introduction to Javascript
Introduction to JavascriptIntroduction to Javascript
Introduction to Javascript
Amit Tyagi
 
Javascript
JavascriptJavascript
Javascript
guest03a6e6
 

Viewers also liked (20)

Intro to Javascript
Intro to JavascriptIntro to Javascript
Intro to Javascript
 
Intro to JavaScript
Intro to JavaScriptIntro to JavaScript
Intro to JavaScript
 
Intro to JavaScript
Intro to JavaScriptIntro to JavaScript
Intro to JavaScript
 
Intro to Javascript
Intro to JavascriptIntro to Javascript
Intro to Javascript
 
NodeJs Intro - JavaScript Zagreb Meetup #1
NodeJs Intro - JavaScript Zagreb Meetup #1NodeJs Intro - JavaScript Zagreb Meetup #1
NodeJs Intro - JavaScript Zagreb Meetup #1
 
Intro to JavaScript
Intro to JavaScriptIntro to JavaScript
Intro to JavaScript
 
Intro to javascript (4 week)
Intro to javascript (4 week)Intro to javascript (4 week)
Intro to javascript (4 week)
 
Intro to JavaScript
Intro to JavaScriptIntro to JavaScript
Intro to JavaScript
 
Javascript intro for MAH
Javascript intro for MAHJavascript intro for MAH
Javascript intro for MAH
 
JavaScript Intro
JavaScript IntroJavaScript Intro
JavaScript Intro
 
Javascript Intro 01
Javascript Intro 01Javascript Intro 01
Javascript Intro 01
 
Intro to Javascript and jQuery
Intro to Javascript and jQueryIntro to Javascript and jQuery
Intro to Javascript and jQuery
 
Basics of JavaScript
Basics of JavaScriptBasics of JavaScript
Basics of JavaScript
 
Mineral
MineralMineral
Mineral
 
Qelqi
QelqiQelqi
Qelqi
 
Le Wagon - Javascript for Beginners
Le Wagon - Javascript for BeginnersLe Wagon - Javascript for Beginners
Le Wagon - Javascript for Beginners
 
Fundamental JavaScript [UTC, March 2014]
Fundamental JavaScript [UTC, March 2014]Fundamental JavaScript [UTC, March 2014]
Fundamental JavaScript [UTC, March 2014]
 
Introduction to JavaScript
Introduction to JavaScriptIntroduction to JavaScript
Introduction to JavaScript
 
Introduction to Javascript
Introduction to JavascriptIntroduction to Javascript
Introduction to Javascript
 
Javascript
JavascriptJavascript
Javascript
 

Similar to JavaScript - Intro

HT16 - DA156A - JavaScript 3
HT16 - DA156A - JavaScript 3HT16 - DA156A - JavaScript 3
HT16 - DA156A - JavaScript 3
Anton Tibblin
 
Webbens Arkitektur
Webbens ArkitekturWebbens Arkitektur
Webbens Arkitektur
niklal
 
HT18 - DA156A - Extra
HT18 - DA156A - ExtraHT18 - DA156A - Extra
HT18 - DA156A - Extra
Anton Tibblin
 
JavaScript & DOM
JavaScript & DOMJavaScript & DOM
JavaScript & DOM
Anton Tibblin
 
DA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelDA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object model
Anton Tibblin
 
JavaScript + DOM
JavaScript + DOMJavaScript + DOM
JavaScript + DOM
Johan Holmberg
 
VT2019 - DA355A - jQuery och Ajax
VT2019 - DA355A - jQuery och AjaxVT2019 - DA355A - jQuery och Ajax
VT2019 - DA355A - jQuery och Ajax
Anton Tibblin
 
HT19 - DA156A - Introduktion till CSS
HT19 - DA156A - Introduktion till CSSHT19 - DA156A - Introduktion till CSS
HT19 - DA156A - Introduktion till CSS
Anton Tibblin
 
HT18 - DA156A - Introduktion till CSS
HT18 - DA156A - Introduktion till CSSHT18 - DA156A - Introduktion till CSS
HT18 - DA156A - Introduktion till CSS
Anton Tibblin
 
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerVT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
Anton Tibblin
 
JavaScript och DOM
JavaScript och DOMJavaScript och DOM
JavaScript och DOM
Johan Holmberg
 
HT16 - DA156A - JavaScript forts.
HT16 - DA156A - JavaScript forts.HT16 - DA156A - JavaScript forts.
HT16 - DA156A - JavaScript forts.
Anton Tibblin
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTML
Anton Tibblin
 
Länkad Data
Länkad DataLänkad Data
Länkad Data
niklal
 
HT19 - DA156A - Introduktion till HTML
HT19 - DA156A - Introduktion till HTMLHT19 - DA156A - Introduktion till HTML
HT19 - DA156A - Introduktion till HTML
Anton Tibblin
 
Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5
Martin Carlsson
 
jQuery & Ajax
jQuery & AjaxjQuery & Ajax
jQuery & Ajax
Anton Tibblin
 
HT18 - DA156A - Introduktion till HTML
HT18 - DA156A - Introduktion till HTMLHT18 - DA156A - Introduktion till HTML
HT18 - DA156A - Introduktion till HTML
Anton Tibblin
 
Introduktion till CSS
Introduktion till CSSIntroduktion till CSS
Introduktion till CSS
Anton Tibblin
 
Librisxl treffpunkt mikromarc
Librisxl treffpunkt mikromarcLibrisxl treffpunkt mikromarc
Librisxl treffpunkt mikromarc
Janne Johannesson
 

Similar to JavaScript - Intro (20)

HT16 - DA156A - JavaScript 3
HT16 - DA156A - JavaScript 3HT16 - DA156A - JavaScript 3
HT16 - DA156A - JavaScript 3
 
Webbens Arkitektur
Webbens ArkitekturWebbens Arkitektur
Webbens Arkitektur
 
HT18 - DA156A - Extra
HT18 - DA156A - ExtraHT18 - DA156A - Extra
HT18 - DA156A - Extra
 
JavaScript & DOM
JavaScript & DOMJavaScript & DOM
JavaScript & DOM
 
DA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object modelDA395A - VT24 - JavaScript & Document object model
DA395A - VT24 - JavaScript & Document object model
 
JavaScript + DOM
JavaScript + DOMJavaScript + DOM
JavaScript + DOM
 
VT2019 - DA355A - jQuery och Ajax
VT2019 - DA355A - jQuery och AjaxVT2019 - DA355A - jQuery och Ajax
VT2019 - DA355A - jQuery och Ajax
 
HT19 - DA156A - Introduktion till CSS
HT19 - DA156A - Introduktion till CSSHT19 - DA156A - Introduktion till CSS
HT19 - DA156A - Introduktion till CSS
 
HT18 - DA156A - Introduktion till CSS
HT18 - DA156A - Introduktion till CSSHT18 - DA156A - Introduktion till CSS
HT18 - DA156A - Introduktion till CSS
 
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbteknikerVT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
VT24 - jQuery & Ajax - Flerplattformsapplikationer med webbtekniker
 
JavaScript och DOM
JavaScript och DOMJavaScript och DOM
JavaScript och DOM
 
HT16 - DA156A - JavaScript forts.
HT16 - DA156A - JavaScript forts.HT16 - DA156A - JavaScript forts.
HT16 - DA156A - JavaScript forts.
 
Introduktion till HTML
Introduktion till HTMLIntroduktion till HTML
Introduktion till HTML
 
Länkad Data
Länkad DataLänkad Data
Länkad Data
 
HT19 - DA156A - Introduktion till HTML
HT19 - DA156A - Introduktion till HTMLHT19 - DA156A - Introduktion till HTML
HT19 - DA156A - Introduktion till HTML
 
Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5Responsiv webbdesign + HTML5 + CSS5
Responsiv webbdesign + HTML5 + CSS5
 
jQuery & Ajax
jQuery & AjaxjQuery & Ajax
jQuery & Ajax
 
HT18 - DA156A - Introduktion till HTML
HT18 - DA156A - Introduktion till HTMLHT18 - DA156A - Introduktion till HTML
HT18 - DA156A - Introduktion till HTML
 
Introduktion till CSS
Introduktion till CSSIntroduktion till CSS
Introduktion till CSS
 
Librisxl treffpunkt mikromarc
Librisxl treffpunkt mikromarcLibrisxl treffpunkt mikromarc
Librisxl treffpunkt mikromarc
 

More from Anton Tibblin

2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf
Anton Tibblin
 
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingVT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutveckling
Anton Tibblin
 
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerVT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
Anton Tibblin
 
HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonHT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med Python
Anton Tibblin
 
HT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringHT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhantering
Anton Tibblin
 
HT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonHT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikon
Anton Tibblin
 
HT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionHT23 - DA354A - Kursintroduktion
HT23 - DA354A - Kursintroduktion
Anton Tibblin
 
HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)
Anton Tibblin
 
HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1
Anton Tibblin
 
HT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekHT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & Bibliotek
Anton Tibblin
 
HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScript
Anton Tibblin
 
HT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingHT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutveckling
Anton Tibblin
 
HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)
Anton Tibblin
 
HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)
Anton Tibblin
 
HTML - Tabeller och formulär
HTML - Tabeller och formulärHTML - Tabeller och formulär
HTML - Tabeller och formulär
Anton Tibblin
 
Kursintroduktion
KursintroduktionKursintroduktion
Kursintroduktion
Anton Tibblin
 
LocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaLocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - Media
Anton Tibblin
 
VT23 - RWD & Ramverk
VT23 - RWD & RamverkVT23 - RWD & Ramverk
VT23 - RWD & Ramverk
Anton Tibblin
 
VT23 - DA395A - Kursintroduktion
VT23 - DA395A - KursintroduktionVT23 - DA395A - Kursintroduktion
VT23 - DA395A - Kursintroduktion
Anton Tibblin
 
HT22 - DA354A - Files
HT22 - DA354A - FilesHT22 - DA354A - Files
HT22 - DA354A - Files
Anton Tibblin
 

More from Anton Tibblin (20)

2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf2024 - Localstorage & cookies Geolocation Mediahantering.pdf
2024 - Localstorage & cookies Geolocation Mediahantering.pdf
 
VT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutvecklingVT24 - Responsiv design & Ramverk inom webbutveckling
VT24 - Responsiv design & Ramverk inom webbutveckling
 
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbteknikerVT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
VT24 - DA395A - Kursintroduktion: Flerplattformsapplikationer med webbtekniker
 
HT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med PythonHT23 - DA354A - Webbprogrammering med Python
HT23 - DA354A - Webbprogrammering med Python
 
HT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhanteringHT23 - DA354A - Fil- och felhantering
HT23 - DA354A - Fil- och felhantering
 
HT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikonHT23 - DA354A - Listor och lexikon
HT23 - DA354A - Listor och lexikon
 
HT23 - DA354A - Kursintroduktion
HT23 - DA354A - KursintroduktionHT23 - DA354A - Kursintroduktion
HT23 - DA354A - Kursintroduktion
 
HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)HT23 - DA106A - Användbarhet (2)
HT23 - DA106A - Användbarhet (2)
 
HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1HT23 - DA106A - Användbarhet 1
HT23 - DA106A - Användbarhet 1
 
HT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & BibliotekHT23 - DA106A - Ramverk & Bibliotek
HT23 - DA106A - Ramverk & Bibliotek
 
HT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScriptHT23 - DA106A - Introduktion till JavaScript
HT23 - DA106A - Introduktion till JavaScript
 
HT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutvecklingHT23 - DA106A - Responsiv webbutveckling
HT23 - DA106A - Responsiv webbutveckling
 
HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)HT23 - DA106A - Layout (2)
HT23 - DA106A - Layout (2)
 
HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)HT23 - DA106A - Layout med CSS (1)
HT23 - DA106A - Layout med CSS (1)
 
HTML - Tabeller och formulär
HTML - Tabeller och formulärHTML - Tabeller och formulär
HTML - Tabeller och formulär
 
Kursintroduktion
KursintroduktionKursintroduktion
Kursintroduktion
 
LocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - MediaLocalStorage - GeoLocation - Media
LocalStorage - GeoLocation - Media
 
VT23 - RWD & Ramverk
VT23 - RWD & RamverkVT23 - RWD & Ramverk
VT23 - RWD & Ramverk
 
VT23 - DA395A - Kursintroduktion
VT23 - DA395A - KursintroduktionVT23 - DA395A - Kursintroduktion
VT23 - DA395A - Kursintroduktion
 
HT22 - DA354A - Files
HT22 - DA354A - FilesHT22 - DA354A - Files
HT22 - DA354A - Files
 

JavaScript - Intro

  • 3. Dagens föreläsing • JavaScript? • JavaScript – syntax? • JavaScript – att leta upp element i HTML-dokumentet • JavaScript – att manipulera element i HTML- dokumentet • JavaScript – exempel • jQuery – Ett av många JavaScript-ramverk för front-end • jQuery – syntax? • jQuery – Exempel
  • 4. Var passar JavaScript in? JavaScript CSS HTML Innehåll Interaktivitet Utformning Struktur Innehåll
  • 5. JavaScript lever i din webbläsare Allt som behövs för att köra JavaScript är en webbläsare – smidigt värre!
  • 6. Har ni sett det innan?
  • 7. JavaScript – varför? • Vi vill ge liv till annars statiska webbsidor! • T.ex.  Automatiskt modifiera dynamiskt innehåll  Facebook  Twitter  Gmail  Diverse beräkningar  T.ex. valutakonverteringar  Förbättrade GUI  Animeringar  Lägga till/ta bort/modifiera befintliga HTML-element
  • 8. JavaScript - exempel • http://valuta.se • http://yensdesign.com/tutorials/validateform/ • http://www.phoboslab.org/ztype/
  • 9. JavaScript - Historik • Utvecklades av Netscape under mitten av 90-talet • Har inget med Java att göra – det är ett eget programmeringsspråk • Microsoft skapade sin egen verision av JavaScript – Jscript • På senare dagar (2005) har ajax blivit en populärt • Lägger till extra funktionalitet för webben och webbläsare
  • 10. Vad kan man göra med JavaScript? • I princip vad du vill! • Men det används ofta till att skapa interaktiva webbsidor • Med interaktiv menas: Reagera på användaras handlingar och modifiera webbsidans innehåll
  • 11. JavaScript • JavaScript skrivs som ren text • Det kan skrivas antingen inbäddat direkt i HTML- koden • Eller i en separat fil, som sedan inkluderas i HTML- dokumentet
  • 12. JavaScript - Var skrivs det?
  • 13. JavaScript som programmeringsspråk • Ett högnivåspråk • Ett otypat språk • Ett skriptspråk • Ni kan programmera, så efter lite träning med syntaxen så borde det inte vara några problem att komma igång =)
  • 15. Att hitta element genom JS • En stor fördel med JS är att vi kan leta upp HTML- element! • Vi kan leta upp detta genom att:  Ange typen av element (t.ex. alla <p>-element)  Ange klassen för ett element (t.ex. alla element med klassen ”blue”)  Ange ett id för ett element • Jämför detta med hur vi använder CSS för att hitta våra element.
  • 16. Exempel på att hitta element
  • 17. Användardrivet GUI • Vi ”lyssnar” efter användarens handlingar, som t.ex.  Klick  Musrörelser  Svepningar  M.m. • Vi kan sedan koppla ihop dessa handlingar med element – och sedan koppla detta till en funktion
  • 18. Att modifiera element • Vi kan ändra attribut för element • Vi kan ändra CSS för element • Vi kan ändra text för element • Vi kan lägga till nya element • Vi kan ta bort element
  • 19. Exempel på att modifiera element
  • 20. ”this” – att referera till elementet som utlöste händelsen • ”this” som nyckelord är väldigt händigt att hantera – på så sätt behöver vi inte ”leta upp” elementet som utlöste händelsen mer än en gång.
  • 21. Exempel med JavaScript Hitta & manipulera element
  • 22. DOM • Trädstruktur som motsvarar taggarnas ordning/nästling • Varje element är en ”nod” i trädet • Relationer mellan noderna beskrivs med förälder/barn och syskon
  • 24. Använda DOM • I JavaScript kan man alltid komma åt DOM via objektet ”document” • Därifrån kan vi ”navigera” genom trädet // referens till body-elementet: document.body // lista över alla element i body document.body.childNodes
  • 25. Att navigera i DOM • Vi antar att ”node” är en nod/element i DOM-trädet // Navigera mellan noder på samma nivå node.nextSibling node.previousSibling // Nedåt, barnnoder node.firstChild node.lastChild node.childNodes // alla barn // Uppåt, förälder node.parentNode
  • 27. Att hämta värde från formulär
  • 28. localStorage – Att spara data hos klienten • Vi kan spara data lokalt (text-strängar) hos användaren.  Typ som cookies, men är inte begränsade på samma sätt gällande längden på det som sparas  Enklare att hantera än cookies • Sparas i nyckel: värde format (som ett lexikon)
  • 29. Exempel på localStorage localStorage.setItem("Name", "Anton"); localStorage.getItem("Name"); // Returnerar "Anton"
  • 30. jQuery – ett JS- ramverk
  • 31. Varför ramverk? • Snabbare utveckling • Inbyggda funktioner • Animeringar och andra effekter • Cross-browser lösningar
  • 32. jQuery – Referera till element • Att referera till element (”CSS”-referenser) $(”#id”); document.querySelectorAll(”#id”); • Att referera till taggar $(”a”); document.querySelectorAll(”a”); • Att referera till klasser $(”.blue”); document.querySelectorAll(”.blue”);
  • 33. jQuery – navigera i DOM • Document.getElementById(”id”).nextsibling; $(”#id”).next(); • Document.getElementById(”id”).childNodes; $(”#id”).children(); • Document.getElementById(”id”).parentNode; $(”#id”).parent();
  • 34. Att använd funktioner i jQuery • Att dölja ett element: document.getElementById(”id”).style.display = ”none”; $(”#id”).hide(); • Att tona in ett element (animering): $(”#id”).fadeIn(1000);

Editor's Notes

  1. Responsiv design – olika enheter – olika möjligheter.
  2. Utvecklades som “Mocha” & “LiveScript” under 90-talet Presenterades i Netscape Navigator 2, 1995 Bytte då namnet till JavaScript (för att det fanns ett annat spännande språk som hette Java). Men man ville stödja “små Java-program” I webbläsaren Ajax, Web 2.0. Ville slippa för många sidomladdningar för varje gång man vill prata med databasen Tekniken fanns sedan tidigare, men uppmärksammades först nu ordentligt. Developed under the name Mocha, LiveScript was the official name for the language when it first shipped in beta releases of Netscape Navigator 2.0 in September 1995, but it was renamed JavaScript[10] when it was deployed in the Netscape browser version 2.0B3.[11] Termen Ajax myntades 2005 av Jesse James Garrett, designstrateg och produktutvecklare hos Adaptive Path i USA. I essän Ajax: A New Approach to Web Applications [1], noterade han att det faktum att en webbsida varit tvungen att kommunicera med servern vid varje liten interaktion från användarens sida, gjort användningen ofta plågsamt långsam och obekväm. Han konstaterade att många då relativt nya sajter eller tjänster, som Flickr, Google Maps och Google Mail använde ett antal elegantare och snabbare tekniker med ett mellanlager - en "Ajax-maskin" som laddas som en del av webbsidan. Garrett poängterade att de tekniker som gjorde detta möjligt hade funnits en längre tid, och att det nu handlade om att använda dem samlat och med ett bestämt syfte. XMLHttpRequest-objektet fanns t ex redan 1999 i Internet Explorer, via en så kallad ActiveX-kontroll. W3C har föreslagit en standard motsvarande XMLHttpRequest som heter DOM level 3, eller Document Object Model Level 3, och har funnits som utkast sedan 2004.
  3. Vi kan bygga små program i webbläsaren Miniräknare Bildspel Animeringar Beräkningar vad du vill Göra webbplatser attraktiva Animeringar Interaktivt innehåll Dynamiska innehåll Samla in data om användaren Vilken webbläsare kör du? Vilket operativsystem kör du? Osv!
  4. Leta upp: Alla bilderna Navigationen Huvudrubriken Ändra: Byt färg på menyn Ändra rubriken på sidan När man klickar på en bild, så blir bakgrundsfärgen mörkare <script> var figures = document.querySelectorAll("figure"); for(var i = 0; i < figures.length; i++){ figures[i].addEventListener("click", colorize, false); } function colorize(){ this.style.backgroundColor = "#AAA"; } </script>
  5. Visa på barn & föräldrar i documentet Navigera mellan figurerna i elementet
  6. Bygg en ”välj bakgrundsfärg”