Digitaalisen median tekniikat JavaScript_osa Harri Laine 1

Samankaltaiset tiedostot
Digitaalisen median tekniikat JavaScript_osa2

Digitaalisen median tekniikat, s2007 HY/TKTL, javascript_1. Harri Laine 1. JavaScript

Luento 3. Jouni Ikonen - Jouni.Ikonen lut.fi

Harjoitus 2: Oppijan aktivointi ( )

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

Javascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia

Digitaalisen median tekniikat. Luento 4: JavaScript

JavaScript alkeet Esimerkkikoodeja moniste 2 ( Metropolia)

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

JavaScript alkeet. Intro Muuttujat Dialogi boxit. Metropolia 2011

8 Kuvat, sovelmat ja objektit

JavaScript alkeet Esimerkkikoodeja moniste 3 (Metropolia 11/2011)

JavaScript alkeet Esimerkkikoodeja moniste 2

11 JavaScript Mikä JavaScript on?

Verkkosivut perinteisesti. Tanja Välisalo

Digitaalisen median tekniikat css tyylimääritykset

Digitaalisen median tekniikat css tyylimääritykset Harri Laine 1

HTML ja CSS. T WWW-palvelun suunnittelu Mikko Pohja

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

Harjoitus 2: Raahaus, satunnaisuus ja taulukot ( )!

Digitaalisen median tekniikat xhtml - jatkuu

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1

ITKP102 Ohjelmointi 1 (6 op)

Mainonnanhallinta Käyttöopastus. Tekniikka. Olli Erjanti Mediareaktori

5 Taulukot 51. Onnettomuusprosentti Vahingonkorvaukset/onnettomuus Stor Ab mk Liten Ab 4

10 Lomakkeet Kontrollit. 10 Lomakkeet

Aulikki Hyrskykari Antti Sand

HTML-ohjeet. Sivun perusrakenne <HTML> <HEAD> <STYLE TYPE="text/css"> ...tänne tulee CSS-koodi eli sivun ulkonäkö määritykset...

18. Abstraktit tietotyypit 18.1

1 Tehtävän kuvaus ja analysointi

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

Ohjelmoinnin jatkokurssi, kurssikoe

3 Muotoilu 27. elementtiä käytetään ja miltä se näyttää selaimessa.

Digitaalisen median tekniikat xhtml - jatkuu

Digitaalisen median tekniikat JavaScript

Kooste. Esim. Ympyrän keskipiste voidaan ajatella ympyrän osaksi.

Digitaalisen median tekniikat JavaScript Harri Laine 1

20. Javan omat luokat 20.1

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

05/04/2004. Digitaalisen median tekniikat, k2004 HY/TKTL, javascript_1. Harri Laine 1. JavaScript

Code Camp for Girls. Sanna Nygård. Lokakuussa

Helsingin Sanomat ipad

Digitaalisen median tekniikat css tyylimääritykset

Olion ominaisuuksiin ja metodeihin viitataan pistenotaatiolla:

HTML5 -elementit jatkuu

HTML5 video, audio, canvas. Mirja Jaakkola

Internet-pohjaisen oppimisympäristön laadinta. Luento 3

Java kahdessa tunnissa. Jyry Suvilehto

Mikä yhteyssuhde on?


Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Tee html-sivu, jossa on yllä olevat kaksi taulukkoa.

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

Taulukot. Jukka Harju, Jukka Juslin

Ohjelmoinnin perusteet Y Python

Jypelin käyttöohjeet» Ruutukentän luominen

Alkuun HTML5 peliohjelmoinnissa

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python

CSS - tyylit Seppo Räsänen

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Digitaalisen median tekniikat xhtml

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet

Digitaalisen median tekniikat xhtml Harri Laine 1

Luokat ja oliot. Ville Sundberg

Digitaalisen median tekniikat. JSP ja XML

2. PEHMEÄ XHTML XRAJAHTML

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

Kotisivuohjeet. Eteläpohjalaiset Kylät ry. Sivupohjien rakenne

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1

valitsin on useimmiten html-elementti, jolle tyyli halutaan luoda

Entiteetit erotetaan muusta tekstistä & ja puolipiste. esim. copyright-merkki näkyy sivulla

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Interaktiivinen käyttöliittymä. 2008

Ohjelmoinnin perusteet Y Python

Ohjelmointi 2, välikoe

Metodien tekeminen Javalla

H T M L eli kuinka laadin itselleni päheät kotisivut. Janne Käki

Digitaalisen median tekniikat. Esteettömyys ja käytettävyys

Olio-ohjelmointi Syntaksikokoelma

Olio-ohjelmoinnissa luokat voidaan järjestää siten, että ne pystyvät jakamaan yhteisiä tietoja ja aliohjelmia.

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

Ohjelmoinnin peruskurssi Y1

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Digitaalisen median tekniikat. Esteettömyys ja käytettävyys Harri Laine 1

Internet-pohjaisen oppimisympäristön laadinta. Luento 3

Dynaamiset www-sivut scripteillä vbscript ja j(ava)script Seppo Räsänen

ITKP102 Ohjelmointi 1 (6 op)

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Muutamia peruskäsitteitä

Sisältö. 2. Taulukot. Yleistä. Yleistä

16. Javan omat luokat 16.1

Opera Hotel Edition. Arvonlisäverokantojen muutos Operaan Finland. Toukokuu 2010 MICROS-Fidelio Finland Oy, Hotel Systems HelpDesk

Periytyminen (inheritance)

Transkriptio:

Digitaalisen median tekniikat JavaScript_osa2 7.4.2004 Harri Laine 1

JavaScript oliot JavaScriptissä voidaan määritellä myös luokkia ja olioita. Luokka määritellään konstruktorifunktion avulla function Ympyra(x,y,r) { this.xkoord=x; this.ykoord=y; this.sade=r; this.keha= 2*Math.Pi*this.sade; this.pinta_ala= Math.Pi*(this.sade * this.sade); } ja tälle instanssi var y1 = new Ympyra(10,10,3); eivät muutu, jos sädettä myöhemmin muutetaan 7.4.2004 Harri Laine 2

JavaScript oliot instanssin muuttujiin viitataan piste-notaatiolla tai indeksillä: y1.sade y1[ sade ] Olio voidaan ajatella assosiatiivisena taulukkona y1 xkoord 10 ykoord sade keha pinta_ala 10 3 7.4.2004 Harri Laine 3

JavaScript oliot Kuten taulukkoonkin olioon voidaan lisätä uusia ominaisuuksia, jos indeksi ei ole käytössä luodaan uusi alkio: y1.vari= punainen ; aiheuttaa uuden ominaisuuden lisäyksen 7.4.2004 Harri Laine 4

JavaScript oliot Metodin lisääminen: Muutetaan ympyrän määrittelyä: function Ympyra(x,y,r) { function laske_keha { return (2*Math.Pi*this.sade); } function laske_pinta_ala { return (Math.Pi*(this.sade * this.sade)); } } this.xkoord=x; this.ykoord=y; this.sade=r; this.keha= laske_keha; this.pinta_ala= laske_pinta_ala; FUNKTIOARVOISIA MUUTTUJIA 7.4.2004 Harri Laine 5

JavaScript oliot Edellä oleva voidaan antaa myös: function Ympyra(x,y,r) { this.xkoord=x; this.ykoord=y; this.sade=r; this.keha= laske_keha; this.pinta_ala= laske_pinta_ala; FUNKTIOARVOISIA MUUTTUJIA } function laske_keha { return (2*Math.Pi*this.sade); } function laske_pinta_ala { return (Math.Pi*(this.sade * this.sade)); } 7.4.2004 Harri Laine 6

JavaScript oliot Metodin kutsu: y1.keha( ) Metodilla voi olla myös parametreja Instanssimetodit määritellään konstruktorissa sijoittamalla arvo instanssimuuttujalle. Tällainen metodi on jokaisella instanssilla Metodeja voidaan lisätä myöhemmin, mutta silloin ne ovat instanssikohtaisia y1.isonna= kasvata(z); function kasvata(z) { this.sade +=z; } 7.4.2004 Harri Laine 7

JavaScript oliot Luokkametodit ovat myös mahdollisia: function laske_halkaisija (sade) { return (sade*2); } Ympyra.halkaisija = laske_halkaisija; 7.4.2004 Harri Laine 8

JavaScript valmiit luokat Date - päiväys mittaa unix-aikaa eli millisekunteja 1.1.1970 alkaen var nykyhetki =new Date(); osien asetus- ja kyselymetodeja (katso esimerkki) getdate( ) getday( ) getmonth( ) getfullyear( ) getminutes( ) gethours( ) the day on the month - numeric value the day of the week 1=Monday.. 7 the month as an integer 0= January.. 11 the year as a for digit number minutes (0-59) integer in 24 hour system. (0-23) 7.4.2004 Harri Laine 9

JavaScript valmiit luokat Math: matemaattisia funktioita luokkametodeina String: merkkijono on luokkakin vaikka sijoitukset ja vertailut toimivat kuten perustietotyypillä ominaisuuksia ja metodeja esim. (katso esimerkki) length substring(alku,loppu) substring(0,1) =ensimmäinen merkki =charat(0) substr(alku,pituus) indexof(merkkijono, alku) tolowercase(),touppercase(), RegExp,Object, 7.4.2004 Harri Laine 10

Selainluokat ja oliot Ydin navigator 7.4.2004 Harri Laine 11

Selainluokat ja oliot window selainikkunaan liittyviä palveluja window globaali olio, muu rakenne sen alapuolella open (uusi ikkuna), close pop-upit: alert, prompt, confirm (katso esimerkki) kymmeniä metodeja navigator tietoja selaimesta (katso esimerkki) selaimen tunnistus voidaan tehdä navigator:in tietojen perusteella usein kuitenkin kysytään jotain yleistä ominaisuutta, jonka tiedetään olevan vain jollain selaimella, esimerkiksi: if (document.all) tunnistaa uudehkon IE:n 7.4.2004 Harri Laine 12

Selainluokat ja oliot history tietoa selailureitistä voidaan esimerkiksi toteuttaa selaimen back- ja forward- näppäimet sivulle location tietoa ladatusta dokumentista mm href ominaisuus=nykyisen dokumentin URL, vaihtamalla tämän arvo vaihtuu ikkunan sisältö location.replace(url) vaihtaa ikkunan sisällön ja korvaa historiassa edellisen url:n uudella. Edelliseen ei siten pääse takaisin back-näppäimellä 7.4.2004 Harri Laine 13

Selainluokat ja oliot document varsinaisen dokumentin pääolio eri tyyppiset elementit erillisissä taulukoissa anchors, applets, forms, images, links,.. rakenteita joilla voidaan käydä läpi eri tyyppisiä elementtejä childnodes= solmun lapsielementit, all (IE only) dokumentin ominaisuuksia referrer, cookie, title, attributes-taulukko, 7.4.2004 Harri Laine 14

Selainluokat ja oliot document metodeja, mm: open(), close(), write(string), writeln(string) navigointimetodit getelementbyid(string) id:n perusteella getelementsbytag(string) tagin perusteella getelementsbyname(string) name attribuutin perusteella tabs=document.getelementsbytag( table ); alkioihin viitataan tabs[i] tai tabs.item(i) aineiston luonti createelement(tag) createtextelement(string) arvomuutokset setattribute(name,value) 7.4.2004 Harri Laine 15

Selainluokat ja oliot element yliluokka dokumentin elementeille kaikille yhteisiä rakenteita ja metodeja, tärkeimpiä: attributes - attribuuttitaulukko childnodes - lapsielementit id - tunniste class - elementin luokitus (class-määre) innerhtml - sisältö tageineen style - tyylimääritys JavaScriptissä tyyliattribuuteille eri nimet kuin CSS:ssä tähän tapaan: bordertop =CSS:border-top 7.4.2004 Harri Laine 16

Selainluokat ja oliot element metodeja getattribute(name), setattribute(name,value), hasattribute(name) getelementsbytagname(tag) http://www.mozilla.org/docs/dom/domref/ http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/dhtml_reference_entry.asp 7.4.2004 Harri Laine 17

JavaScript tapahtumakäsittelijät onblur Returns the event handling code for the blur event. onclick Returns the event handling code for the click event. ondblclick Returns the event handling code for the dblclick event. onfocus Returns the event handling code for the focus event. onkeydown Returns the event handling code for the keydown event. onkeypress Returns the event handling code for the keypress event. onkeyup Returns the event handling code for the keyup event. onmousedown Returns the event handling code for the mousedown event. onmousemove Returns the event handling code for the mousemove event. onmouseout Returns the event handling code for the mouseout event. onmouseover Returns the event handling code for the mouseover event. onmouseup Returns the event handling code for the mouseup event. onresize Returns the event handling code for the resize event. onload, onunload usein body elementin yhteydessä 7.4.2004 Harri Laine 18

JavaScript html-dokumentissa JavaScriptiä voidaan upottaa HTML-koodiin sekaan: koodia sisältävinä <script> - elementteinä ulkoisia tiedostoja kytkevinä <script> - elementteinä linkin kohteina tapahtuma-käsittelijöinä. 7.4.2004 Harri Laine 19

JavaScript html-dokumentissa Tyypillisesti dokumentin head-osaan sisältyy: yksi <script>-elementti, jossa määritellään paikalliset funktiot ja globaalit muuttujat mahdollisesti useita <script>-elementtejä, joissa ladataan ulkoisia JavaScript-tiedostoja (nämä sisältävät tyypillisesti useilla sivuilla tarvittavia funktioita) Body-osaan voidaan laittaa: <script>-elementtejä sellaisiin kohtiin, joihin halutaan tuottaa sisältöä JavaScriptillä Linkin kohteeksi voidaan määritellä suoritettava JavaScript-koodi <a href="javascript:window.open('otherfile.html');">otherfile</a> Elementin tapahtumakäsittelijäksi voidaan antaa Javascriptkoodia <img src= kuva onclick= kehysta(); > (kehysta() on aiemmin määritelty funktio) 7.4.2004 Harri Laine 20

JavaScript html-dokumentissa JavaScript koodi suoritetaan siinä vaiheessa kun se tulee vastaan dokumentin käsittelyssä: <script>-elementti, jossa koodia <script type="text/javascript" language="javascript"> <!-- hide script from older browsers var hithere = 'I am a JavaScript statment'; window.alert(hithere); // stop hiding script --> </script> XHTML:ssä <script> -elementtiin voi liittää defer= defer attribuutin ilmaisemaan, että koodi suoritetaan vasta kun koko dokumentti on ladattu 7.4.2004 Harri Laine 21

JavaScript html-dokumentissa ulkoisen tiedoston lataus: <script type="text/javascript" language="javascript" src="myscript.js"> </script> Esimerkkejä: Tämän kurssin kurssisivujen valikko http://jdstiles.com/javamain.html http://developer.irt.org/script/script.htm 7.4.2004 Harri Laine 22

Dynaaminen valikko Kurssisivun valikko katso toiminta tarkemmin sivulta http://www.cs.helsinki.fi/group/vertti/index.html idea: Sivusto muodostuu joukosta samarakenteisia sivuja Kullakin sivulla on kaksisarakkeinen taulukko, jonka vasemmassa sarakkeessa on sivuvalikko. Sivun ollessa valittuna on sitä vastaava valikkoalkio korostettu Valikko voi olla 3-tasoinen alempi taso saadaan näkyviin ja piiloon valikkoalkiota näpäyttämällä 7.4.2004 Harri Laine 23

Dynaaminen valikko idea: valikko on toteutettu monitasoisena listana kullekin valikkotasolle on kaksi tasokohtaista luokkaa (class) mnux (X=0..2) ja mactx mactx luokitus annetaan aktiiviselle valikkoalkiolle vain yksi valikkoalkio voi olla samanaikaisesti aktiivinen luokitus tehdään JavaScriptillä, sivun tekijän ei tarvitse tietää siitä mitään sivun tekijä tekee valikon tavallisena monitasoisena linkkilistana, jokaiselle lista-alkiolle on kuitenkin määriteltävä id: alemman tason alkion id ylemmän tason id:n alussaan esim valinta1 > valinta11 -> valinta111, valinta112, ylimmällä tasolla ei mikään id saa olla toisen osa id-standardinimeämistä käytetään siihen, että yhdellä läpikäynnillä voidaan avata tarvittavat valikot 7.4.2004 Harri Laine 24