Interaktionsudvikling 2.sem. foraar 2010, Multimediedesigneruddannelsen, Århus Erhvervsakademi

Interaktion 2.semester - Konstruktion og modellering

Plan for dag 3.

 

Læsestof til disse lektioner

På W3Schools:

JS events

JS cookies (evt.)

 

Javascript biblioteket JQuery:

http://www.creativepro.com/article/view-source-javascript-designers

http://www.webdesignerwall.com/tutorials/jquery-tutorials-for-designers/

http://www.w3schools.com/jquery/default.asp

 

Video præsentation om JQuery af en ung amerikaner :-)

 

 


 

Events

En event udløses af en brugerbestemt handling i browseren. Klikker brugeren fx på en musetast eller trykker på en tast udløses en event. Når disse events finder sted, kan man via JavaScript bede om at få udført forskellige handlinger. Det sker ved at indsætte en såkaldt eventhandler. Eventhandlere bliver knyttet til et objekt i DOM, så eventhandleren aktiveres i det øjeblik den handling, som eventhandleren er beregnet til at spore, finder sted i relation til objektet.

Det er eventhandlerne der er interessante her, for uden dem ville de indtrufne events ikke blive opfanget, og de ville dermed ikke udløse noget som helst. Er der derimod en eventhandler knyttet til objektet, kan eventhandleren sættes til at udføre en stump JavaScript kode eller et kald til en JavaScript funktion, i det øjeblik eventen finder sted.

event

En eventhandler er således knyttet til et objekt i DOM. Eventhandlere er lette at genkende, fordi de altid er forsynet med prefikset on.

<button onclick="alert('Boo!');">Click me</button>

 

<a href="#" onclick="alert('Boo!');">Click me</a>



Click me

 

Eventhandlers

Herunder ser du en liste med de mest almindelige events i JavaScript og de tilsvarende eventhandlere. Du får samtidig en angivelse af, hvornår de udløses, og hvilke elementer de er knyttet til. Du skal dog være opmærksom på, at i nyere browsere kan de viste events anvendes sammen med en del flere objekter end dem, der er nævnt her.

Event Genereres af Handlingen udløses når Event handlerens navn
abort image Brugeren afbryder indlæsningen af et billede onabort
blur window og form elementer Et formelement, en frame eller et vindue mister fokus onblur
change text field, text area og select liste Værdien ændres og elementet mister fokus onchange
click checkbox, radio knap, submit knap, reset knap, knap (button) og link Der klikkes på formelementet eller linket onclick
dragdrop window Et objekt, fx en fil trækkes ind over og slippes i et vindue ondragdrop
error image og window Der opstår en fejl under indlæsning af et billede eller et dokument onerror
focus window og form elementer Et formelement, en frame eller et vindue får fokus onfocus
keydown document, image, link og textarea En tast trykkes ned på tastaturet onkeydown
keypress document, image, link og textarea En tast trykkes ned og holdes nede onkeypress
keyup document, image, link og textarea En tast frigives onkeyup
load document En webside læses ind i browseren onload
mousedown document, button, link En museknap trykkes ned onmousedown
mousemove ingen objekter Markøren bevæger sig onmousemove
mouseout link, image Markøren forlader et område eller et link onmouseout
mouseover link, image Markøren bevæger sig ind over et område eller et objekt onmouseover
mouseup document, button, link En museknap frigives onmouseup
move window Et vindue flyttes onmove
reset reset knappen i en form Der trykkes på reset knappen i en form onreset
resize window Et vindue ændre størrelse onresize
select text felt, text area og selectliste Et element vælges onselect
submit submit knappen i en form Der trykkes på submit knappen i en form onsubmit
unload document En webpage forlades onunload

 

Browser events demo

Eksempler på anvendelse

 

Event Anvendelse
onblur Lukke popup vinduer når de mister fokus
onchange Løbende formvalidering af enkeltelementer
onclick Udløser handlinger i forbindelse med tryk på knap, etlink eller et tekstfelt.
onload Et script som udføres, når en side loades, fx billeder der skifter
onmouseover Rollover effekt
onmouseout Rollover effekt
onresize Replacering af elementerne i et vindue, hvis de er placeret i forhold til vinduets størrelse.
onsubmit Kald af en valideringsrutine når der trykkes på submit en form

Nogle eksempler fra W3Schools:

Event Object

Which mouse button was clicked?
What are the coordinates of the cursor?
What is the keycode of the key pressed?
What are the coordinates of the cursor, relative to the screen?
What are the coordinates of the cursor?
Was the shift key pressed?
Which element was clicked?
Which event type occurred?

Using Events with Functions
1. Inline Events  onclick="alert('welcome'); Eksempler: Lommeregner, hotelplaner , Random generator

2. The Traditional Model
function message(){ alert(”Welcome”); }
window.onload = message; // no parentheses after message!

3. The jQuery

A link that calls an alert box.


$(document).ready(function() {
  $("a").click(function() {
    alert("Hello world!");
  });
});

 

 

 

JavaScript Biblioteket Jquery

JQuery (www.jquery.com)
 

Intro artikel : http://www.creativepro.com/article/view-source-javascript-designers

Fordele ved Javascript biblioteket JQuery eri følge introartikel af Dave Sawyer McFarland

Hent javascript_site.zip !!

Her gives der eksempel på hvordan en HTML tabel kan gøres med brugervenligt og funktionelt via JQuery.

<link href="global.css" rel="stylesheet" type="text/css" />


<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.tablesorter.js"></script>
<script type="text/javascript">


$(document).ready(function() {
$('tr:even').addClass('striped');

});


</script>

 

 

Man selektere HTML elementer ligesom med er vandt til fra CSS.

jQuery selectors looks like CSS selectors

Selector test


 

Hand's on eksempel

Lav en fil kaldet testjquery.html som du gemmer i javascript_site mappen.

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<style type="text/css">

#blueBox {
position:absolute;
left:338px;
top:125px;
width:225px;
height:220px;
z-index:1;
background-color: #0099FF;
}

#header {color:#0033FF ;}


.paragraf {background-color:#00CC33; border:dotted }


</style>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script type="text/javascript" src="js/jquery.js"></script>

<script type="text/javascript">


function aabenBox(){
$("#blueBox").fadeIn();
}
function gemBox(){
$("#blueBox").hide();

}

function newHeadText(){

$("#header").html("Hello World ");


}

</script>

<title>A web page</title>
</head>

<body>

<div id="blueBox">BLUE BOX</div>
<h1 id="header"> A Headline </h1>

<p class="paragraf"> Intro to use of Jquery </p>

<form>
<input type="button" onclick="newHeadText(); " value="New text in header" />
<input type="button" onclick="aabenBox(); " value="Show" />
<input type="button" onclick="gemBox();; " value="Hide" />

</form>

</body>
</html>

Hand's on Eksempel
 

Flere Jquery eksempler:

 

Fra bogen Javascript: The Missing Manual

Chapter 7

Chapter 8

Chapter 9

Chapter 10

 

M.m.

http://www.webdesignerwall.com/tutorials/jquery-tutorials-for-designers/

http://pupunzi.com/#mb.components/mb.gallery/gallery.html


Opgaver/Øvelser

 

1. Repetitionsøvelser øvelser (pdf dokument) og som Worddokument

 

2. Tilføj den manglende JavaScript code sådan at lommeregneren på nedenstående link kommer til at virke.

http://www.slipsager.net/scripting2sem/js_calculator_ex.html

Gem lommeregneren som js_calculator.html

 

 


3. Lav en form validering af følgende html form ved at tilføje de manglende elementer i javascript funktionen.

http://www.slipsager.net/scripting2sem/form_validation_ex.html

 

Hint: Forbind submit knappen med valideringsfunktionen. Giv input felterne en id. Hent brugerinput og gem dem i nogle javascript variabler.


Gem filen som form_validation.html

 

3b. Form validering via Jquery plugin validate.

Prøv at undersøge hvordan Jquery kan bruges til at validere formen på denne side.

 

4. Gruppeøvelse: Afprøve en eller flere Jquery effekter som I kan finde på/via:

http://www.webdesignerwall.com/tutorials/jquery-tutorials-for-designers/

http://www.webdesignerwall.com/general/javascript-in-modern-web-design/

Lav en kort præsentation for klassen af jeres Jquery prototype. Prøv at kommentere jeres kode så godt som muligt.