Presentation is loading. Please wait.

Presentation is loading. Please wait.

Bring Life to Your Web Pages with JavaScript and HTML5 Ole Ildsgaard Hougaard -

Similar presentations


Presentation on theme: "Bring Life to Your Web Pages with JavaScript and HTML5 Ole Ildsgaard Hougaard -"— Presentation transcript:

1 Bring Life to Your Web Pages with JavaScript and HTML5 Ole Ildsgaard Hougaard - oih@viauc.dk

2 Web and Multimedia HTML 1 had pictures, but nothing else. HTML 2, 3 and 4? The same(!) What do we do instead? Plug-ins. Possible plug-ins: Windows Media Player, Apple QuickTime, Adobe Flash De-facto standard: Flash but… Ole Ildsgaard Hougaard - oih@viauc.dk

3 HTML5 New tags:,,,,, … Multimedia support:, New APIs: canvas, drag-and-drop support Ole Ildsgaard Hougaard - oih@viauc.dk

4 JavaScript Not Java! A scripting language (whatever that means) A dynamic language (whatever that means) Used to Java or C#? – JavaScript can be quite familiar – JavaScript can be a bit odd – JavaScript can be downright weird

5 Why JavaScript? Saves server roundtrips Saves bandwidth Saves server processing power (Almost) standard No installation required Powerful language

6 Why not JavaScript? Slow (in some browsers) Might be switched off Not completely standard Yet another language to learn Strange language

7 The simple stuff var x = 7; x = x + x; alert(x); No type Part of browser environment

8 Simple HTML page Simple

9 Other simple HTML page Simple var x = 7; x = x + x; alert(x);

10 The window object var x = 7; x = x + x; window.alert(x); window is the global object.

11 Extending window window.x = 7; x = x + x; window.alert(window.x); x is a field in the window object.

12 What does this do? window.x = 7; x = x + x; window.alert(window.y);

13 Arrays and for-loops var numbers = [1, 2, 4, 8]; for(var i = 0; i < numbers.length; i++) { alert(numbers[i]); }

14 Functions A function is like a method in other languages The syntax is like Java except you don't have types Defining a function means defining a method on the this object Functions are first-class citizens

15 Defining and calling a function function showDouble(x) { var y = x + x; alert(y); } var x = 7; showDouble(x); showDouble is a method on the this object y is a local variable

16 Anonymous functions function (x) { var y = x + x; alert(y); }

17 Calling an anonymous function var x = 7; (function (x) { var y = x + x; alert(y); })(x);

18 Saving a function in a variable showDouble = function (x) { var y = x + x; alert(y); } var x = 7; showDouble(x); showDouble is a field on the window object What is the difference between methods and fields containing functions?

19 Exercises 1.Create an HTML page with a JavaScript program that adds the first 10 numbers and shows the result. 2.(Optional) Create a JavaScript function that takes a number (call it n) and returns a function. The returned function should take a number (call it m) and return m*n.

20 Interacting with the page The primary interaction with the browser is through the document The document is the HTML document that the browser is rendering The document is modelled in an object model It's the Document Object Model (DOM)

21 The DOM The document object model represents all elements of the HTML/CSS as an object Main objects are: window and document window is used to interact with the browser window document is used to interact with HTML/CSS

22 Changing the title this.x = 7; x = x + x; document.title = x;

23 Dragging an image

24 Body of the document

25 Let's get stylish #dragArea { width: 800px; height: 600px; border: 1px solid black; position: relative; overflow: hidden; } #image { position: absolute; }

26 Events DOM has an event model Examples of events: – onload – onclick, onmousedown, onmousemove, onmouseup – onscroll – onsubmit

27 Setting an event handler In the HTML: … In JavaScript code: document.body.onload = init; … but when?

28 Finding elements function init() { this.dragArea = document.getElementById("dragArea"); this.image = document.getElementById("image"); //… }

29 Centering the picture function init() { //… var areaWidth = dragArea.clientWidth; var areaHeight = dragArea.clientHeight; var imgWidth = image.clientWidth; var imgHeight = image.clientHeight; image.style.left = (areaWidth - imgWidth) / 2; image.style.top = (areaHeight - imgHeight) / 2; //… }

30 Let's make a simpler version function init() { //… dragArea.onclick = move; } function move(event) { // Internet Explorer hack: if (!event) event = window.event; image.style.left = event.clientX - dragArea.offsetLeft; image.style.top = event.clientY - dragArea.offsetTop; };

31 Exercises 3.Create an HTML page with a button. Show the sum of the first 10 numbers when the button is pressed. 4.Add a field to the page and 5.Create an HTML page with a gallery of images (whatever you can find on the net or your own harddisk). There should be a "previous" and a "next" link to flip through the images. (Hint: You can set the "src" attribute of an image element.)


Download ppt "Bring Life to Your Web Pages with JavaScript and HTML5 Ole Ildsgaard Hougaard -"

Similar presentations


Ads by Google