Διαδικτυακά Πολυμέσα και Γραφικά. Javascript και Web. Στελιος Σφακιανάκης Φθινόπωρο 2018

Σχετικά έγγραφα
JAVASCRIPT EVENTS. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Javascript events. part 01

Θέματα Προγραμματισμού Διαδικτύου ~ HTML ~

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια

ΔΕ10: Πληροφοριακά Συστήματα Διοίκησης IΙ Εργαστήριο # 2

Εργαστήριο 9. Styling with Javascript

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

DOM. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Διαδικτυακά Πολυμέσα και Γραφικά

Εργαστήριο #12. Βήμα 1 ο. Βήμα 2 ο. Βήμα 3 ο. Βήμα 4 ο.

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης

XML related standards

ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : / id ot.com /

Frontend optimizations. Θεοδόσης Σουργκούνης

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010

ADMAN Interstitial Creatives

Δημοσίευση στο Διαδίκτυο

Γλωσσική Τεχνολογία. HTML/XML Processing HTTP Services

Θέματα Προγραμματισμού Διαδικτύου ~ CSS ~

Πληροφορική Τμήμα Σχεδιασμού & Τεχνολογίας Ξύλου & Επίπλου Αντώνιος Καραγεώργος Ευανθία Τσιλιχρήστου. Μάθημα 5 ο Τεχνολογίες Διαδικτύου: HTML I

2. Επιλέξτε την σωστή ετικέτα HTML που προσφέρει το μεγαλύτερο φόντο κειμένου. <head> <heading> <h6> <h1>

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Σε αυτό το μάθημα θα ασχοληθούμε με τη βελτίωση της εμφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισμό όλων των αλλαγών τις οποίες επιθυμούμε να

Προγραμματισμός Ιστοσελίδων: Javascript II

Στην τεχνολογία των CSS, οι κανόνες στυλ (style

Η ιευρυµένη Επιχείρηση Ενότητα Ηλεκτρονικής Μάθησης. «CourseLab» 3ο Φροντιστήριο. Ιωάννα Ταλάντη Υπ. ιδάκτωρ, Τµήµα ιοικητικής Επιστήµης & Τεχνολογίας

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 6: XSL. Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

JAVASCRIPT 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

TEC510 Ανάπτυξη Δικτυακών Τόπων (Ε εξάμηνο) Διδάσκων: Ανδρέας Γιαννακουλόπουλος Επιστημονικός συνεργάτης Εργαστηρίου: Γιώργος Μηλιώτης

Macromedia DreamWeaver Παρουσίαση εργαλείου σχεδίασης διεπαφής χρήστη

Τεχνολογία Πολυμέσων. Ενότητα 11: Αντίγραφή, Επικόλληση και Καθαρισμός Νικολάου Σπύρος Τμήμα Μηχανικών Πληροφορικής ΤΕ

Γλώσσες Σήµανσης (Markup Languages) Τεχνολογία ιαδικτύου και Ηλεκτρονικό Εµπόριο

ΕΡΓΑΣΤΗΡΙΟ FRONT PAGE 2

Σχεδίαση και Ανάπτυξη Ιστότοπων

<a href=" στο κείμενο</a>.

APP INVENTOR ΜΕΡΟΣ A - 1 Η ΕΒΔΟΜΑΔΑ. Σοφία Τζελέπη,

1. O FrontPage Explorer

Παιχνίδια σε Javascript

Εισαγωγή στην πληροφορική

Java & Java EE 3o Μέρος: Διασφάλιση ασφάλειας σε εφαρμογές Java Enterprise Edition. Κακαρόντζας Γεώργιος

1. Απαιτήσεις εργασίας

7-22 Οκτωβρίου Μία γιορτή δημιουργίας με κώδικα. Europe Code Week

Α ΛΥΚΕΙΟΥ - ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΪΟΣ 2019 ΕΝΔΕΙΚΤΙΚΕΣ ΕΡΩΤΗΣΕΙΣ ΚΑΤΑΝΟΗΣΗΣ

Java & Java EE 1o Μέρος: Servlets και Java Server Pages. Κακαρόντζας Γεώργιος

Σχολή Κοινωνικών Επιστημών Τμήμα Πολιτισμικής Τεχνολογίας Και Επικοινωνίας

3D FLASH ANIMATOR (3DFA)

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

ΜΑΘΗΜΑ Άνοιγμα Της Εφαρμογής Επεξεργασίας Κειμένου. 2. Κύρια Οθόνη Της Εφαρμογής Κειμένου ΣΤΟΧΟΙ:

Διαβάστε στο Παράρτημα Α.1 πώς θα γράψετε ένα πρόγραμμα PHP για την παροχή δεδομένων σε μορφή διαφορετική από την HTML.

Σχεδιασμός και Ανάπτυξη Ιστοσελίδων ΙΙ ΙΕΚ ΤΡΙΑΝΔΡΙΑΣ ΓΡΑΦΙΣΤΑΣ ΕΝΤΥΠΟΥ ΚΑΙ ΗΛΕΚΤΡΟΝΙΚΩΝ ΜΕΣΩΝ. CSS - Cascading Style Sheets

Εφαρμοσμένη Πληροφορική ΙΙ (Ε) To Ολοκληρωμένο Περιβάλλον Ανάπτυξης (Integrated Development Environment-IDE) Netbeans 8

TEC410 Ανάπτυξη Δικτυακών Τόπων (Δ εξάμηνο)

Δημιουργία και επεξεργασία διανυσματικών επιπέδων στο QGIS

1. Απαιτήσεις εργασίας

Τι είναι η HTML; Τί είναι οι ετικέτες (tags); Πώς είναι μια ετικέτα (tag);

Εργαστήριο του Μαθήματος: ΕΠΛ003. Ενότητα 3 Εισαγωγή στο Microsoft Word

Δομή διαδικτυακών Πολυμέσων

How to register an account with the Hellenic Community of Sheffield.

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης

Εισαγωγή σε HTML και CSS. Παναγιώτης Τσαρχόπουλος

Η Βίβλος των CSS - Μέρος 3 Το Box Model, τα Περιθώρια και τα Περιγράμματα

Φόρμες. Γενικοί κανόνες. Η ετικέτα <form>

Φύλλο Εργασίας: Παιχνίδι Λαβύρινθος (MAZE) Προγραμματιστικό Εργαλείο: GAME MAKER. Ονοματεπώνυμο:

ΣΕΛΙ Α 1 ΚΕΦΑΛΑΙΟ 1 - ΑΡΧΙΚΑ

Εργαστήριο του Μαθήματος: ΕΠΛ001

Βάσεις Δεδομένων 3η εργαστηριακή άσκηση

Εργαστήριο Εκπαιδευτικού Υλικού και Εκπαιδευτικής Μεθοδολογίας (Ε.Ε.Υ.Ε.Μ.)

ΜΕΡΟΣ ΠΡΩΤΟ: Θεωρητική Προσέγγιση...15

Οδηγίες Ακολουθήστε τα παρακάτω βήματα. Βεβαιωθείτε ότι το πρόγραμμά σας δουλεύει σωστά σε κάθε βήμα, πριν προχωρήσετε στο επόμενο.

ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών

1. Άνοιγμα Και Κλείσιμο Της Εφαρμογής Φυλλομετρητή Ιστού (Internet Explorer)

Ετικέτες HTML. <!-->: Τα σχόλια χρησιμοποιούνται για να γράφουμε σημειώσεις μέσα στον

Αξιολόγηση της επίσημης Moodle Mobile εφαρμογής

Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC ΤΙ ΜΠΟΡΟΎΜΕ ΝΑ ΚΆΝΟΥΜΕ ΜΕ ΤΗ VISUAL BASIC ΑΝΤΙΚΕΊΜΕΝΑ: ΦΌΡΜΑ ΚΑΙ ΧΕΙΡΙΣΤΉΡΙΑ ΕΤΙΚΈΤΑ LABEL

Τεχνολογίες Διαδικτύου - Εργαστήριο 1 ο

Εφαρµογές και Περιβάλλοντα Εργασίας AJAX

Προγραμματισμός Διαδικτύου Ασκήσεις Εργαστηρίου

Δημιουργία δισδιάστατου παιχνιδιού, τύπου Pacman. 1ο μέρος.

Σημειώσεις D3. Προφανώς εάν προσθέταμε μία ή περισσότερες παραγράφους, πριν το script, θα άλλαζε το text στην πρώτη.

1. <body> 2. <header> 3. <h1> My Page </h1> 4. </header> 5. <section>

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕ ΟΝΙΑΣ ΙΑΤΜΗΜΑΤΙΚΟ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ (Master in Information Systems)

Επιβλέπων Καθηγητής : Τσιαντής Λεωνίδας Φοιτητής : Μακρής Γεώργιος

A J A X AJAX Γιάννης Αρβανιτάκης

Σε αυτό το µάθηµα θα ασχοληθούµε µε τη βελτίωση της εµφάνισης ενός ιστοτόπου, αλλά και τον εύκολο χειρισµό όλων των αλλαγών στην εµφάνιση της σελίδας

Βάσεις Δεδομένων 2η εργαστηριακή άσκηση

Γαβαλάς Δαμιανός

Σχεδιασμός και Ανάπτυξη Ιστότοπων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ. Ι. Ψαρομήλιγκος Χ. Κυτάγιας

Εισαγωγή στην HTML. Κεφ. HTML + CSS

Οδηγός Βήμα-Βήμα για να εγκαταστήσετε τα Windows 7 στον Η/Υ σας

Γλώσσα περιγραφής οδηγιών εµφάνισης-στοιχειοθέτησης

Οδηγίες Χρήσης της MySQL

ΟΔΗΓΙΕΣ ΧΕΙΡΙΣΜΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ DYMO LABEL V.8

A3.3 Γραφικά Περιβάλλοντα Επικοινωνίας και Διαχείριση Παραθύρων

ΠΡΟΣΟΧΗ: Οι απαντήσεις πολλαπλής επιλογής µόνο πάνω στο ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ

Για την υλοποίηση ενός html5 δημιουργικού μπορείτε να χρησιμοποιήσετε το επιθυμητό javascript framework.

Transcript:

Διαδικτυακά Πολυμέσα και Γραφικά Javascript και Web Στελιος Σφακιανάκης Φθινόπωρο 2018 Αυτή η εργασία χορηγείται με άδεια Creative Commons Αναφορά Δημιουργού - Μη Εμπορική Χρήση - Παρόμοια Διανομή 1

Javascript και Web!2

Η γενική εικόνα User actions Browser actions Server actions Enters URL (or clicks link) Generates a request and sends it to the server Page building </> Processes HTML, CSS, and JavaScript, and builds resulting page Performs actions or gets a resource; sends response to client Interacts with page elements Closes web app Monitors event queue, processing any events one at a time Event handling App lifecycle ends Figure 2.1 The side web applica user specifying a clicking a link) a user leaves the w posed of two step event handling. Σχετικό: "What happens when you type google.com into your browser's address box and press enter?" https://github.com/alex/what-happens-when 3

Javascript και HTML Ο κώδικας Javascript πρέπει να ειναι μέσα στο <script> tag Το <script> tag μπορεί να αναφέρει (κάνει reference με το src attribute) ένα ξεχωριστό αρχείο που περιέχει τον κώδικα: <script src="../js/lib.js"></script> 4

Θεση των scripts Τα Javascript scripts μπορούν να μπούν στο <head> ή/και στο <body> Αν ειναι στο <head> τότε ο κώδικας (συνήθως/by default) τρέχει πριν να φορτωθεί η σελίδα Αν ειναι στο <body> τότε ο κώδικας Javascript εκετελείται ενώ εμφανίζεται η σελίδα Συνηθίζεται σε <script> που ειναι στο <head> να βαζουμε ορισμούς συναρτήσεων και μεταβλητές που χρησιμοποιούνται στη συνέχεια από scripts που ειναι στο <body> Μπορούμε να έχουμε περισσότερα του ενός <script> 5

Browser developer tools Χρήσιμα για αποσφαλμάτωση: console.log και console.dir alert και prompt Εμφάνιση πληροφοριών για το DOM, stylesheets, επικοινωνία δικτύου, κλπ. Δυνατότητα τροποποίησης του περιεχομένου της σελίδας 6

7

Απλή επικοινωνία με τον χρήστη alert(message) : εμφανίζει το μήνυμα στο χρήστη confirm(message): ζητά από το χρήστη να επιβεβαιώσει ή να ακυρώσει κάτι prompt(msg, default): ζητά από το χρήστη να δώσει καποιο μήνυμα 8

Βασικά αντικείμενα με προγραμματιστική πρόσβαση window object: αναπαριστά την καρτέλα του πλοηγητή (browser tab) (π.χ. διαστάσεις) navigator object: η κατάσταση του browser (π.χ. προτιμώμενη γλώσσα χρήστη) document object: η σελίδα που βλεπουμε (HTML, CSS,..) => Document Object Model (DOM) 9

Document Object Model To DOM είναι μια ιεραρχική αναπαράσταση στη μνήμη του περιεχομένου μιας HTML (ή XML) σελίδας / εγγράφου Ορίζεται και μια "Προγραμματιστική Διεπαφή" (Programming Interface) για το χειρισμό των περιεχομένων Δηλ. με Javascript μπορούμε να χειριστούμε "δυναμικά" το περιεχόμενο, π.χ. να προσθέσουμε στοιχεία HTML, να αλλάξουμε τα περιεχόμενα τους κλπ 10

<!DOCTYPE html> <html> https://software.hixie.ch/utilities/js/live-dom-viewer/saved/6342 <head> <meta charset="utf-8"> <title>παράδειγμα σελίδας</title> </head> <body> <h1>επικεφαλίδα</h1> <div> HTML <img style="height:100px" src="https://media.giphy.com/..." alt="bengal Tiger"> <p>μπορείτε να δείτε online το DOM στο <a href="https://...">live DOM Viewer</a></p> </div> </body> </html> DOM Ιεραρχία 11

DOM Programming Interface Όλα τα HTML στοιχεία ορίζονται ως Javascript objects που έχουν ιδιότητες και μεθόδους Η ιεραρχία ξεκινάει από τη "ρίζα" που είναι το window.document object, και μετά ακολουθείται η δομή του HTML: window.document.head window.document.body 12

DOM object properties nodename : το όνομα του στοιχείου (π.χ. "DIV") ή "#text" αν είναι κείμενο textcontent: το περιεχόμενο κείμενο του στοιχείου (και όλων των στοιχείων που περιέχει) innerhtml: το HTML περιεχόμενο του στοιχείου Ιεραρχική δομή: parentnode : γονικό στοιχείο, nextsibling, previoussibling : επόμενος και προηγούμενος "αδελφός" firstchild, lastchild : πρώτο και τελευταίο στοιχείο "παιδί" childnodes : λίστα με παιδιά 13

Μεθοδοι "Εύρεσης" στοιχείων Μέθοδος document.getelementbyid(id) Περιγραφή Βρίσκει το στοιχείο με αυτό το id document.getelementsbytagname(name) Βρίσκει στοιχεία με αυτό το όνομα document.getelementsbyclassname(name) document.queryselector(selectors); document.queryselectorall(selectors); Βρίσκει στοιχεία με αυτή το CSS class Βρίσκει το πρώτο στοιχείο στο έγγραφο χρησιμοποιώντας τον CSS "επιλογέα" (selector) που δίνεται Βρίσκει μια λίστα με στοιχεία στο έγγραφο χρησιμοποιώντας τον CSS "επιλογέα" (selector) που δίνεται 14

<tbody> <tr class="row" id="first"> <td>1.</td> <td>1st row</td> </tr> <tr class="row" id="second"> <td>2.</td> <td>2nd row</td> </tr> <tr class="row" id="third"> <td>3.</td> <td>3rd row</td> </tr> </tbody> document.getelementbyid("second"); document.getelementsbyclassname("row"); document.queryselectorall(".row > td:nth-child(2)") 15

Αλλάζοντας τα στοιχεία Μέθοδος element.innerhtml =... element.setattribute (attribute, value) Περιγραφή Αλλάζει το εσωτερικό HTML του στοιχείου Αλλάζει την τιμή ενός attribute του στοιχείου element.style.<property> = new style Αλλάζει το στυλ (style) ενός στοιχείου 16

Π.χ. αν θέλουμε να "κρύψουμε" (να κάνουμε αόρατο) ένα element μπορούμε να γράψουμε: elem.style.display="none" elem.style.display="" για να ξαναγίνει "ορατό" 17

Προσθέτοντας και Αφαιρώντας Στοιχεία Μέθοδος document.createelement(element) document.removechild(element) document.appendchild(element) document.replacechild(newchild, oldchild) document.write(text) Περιγραφή Δημιουργεί ένα HTML element Αφαιρεί ("σβήνει") ένα HTML element Προσθέτει ένα HTML element ως τελευταίο παιδί σε ένα άλλο Αντικαθιστά ένα HTML element Γράφει το κείμενο στο HTML output stream 18

Javascript και "γεγονότα" (Events) Ένα Event είναι ένα σήμα ότι κάτι συνέβη. Όλα τα στοιχεία του DOM δημιουργούν τέτοια σήματα αλλά events δημιουργούνται και από αλλού (π.χ. timers) Μπορούμε να αντιδράσουμε στα events εγκαθιστώντας (κάνοντας register) έναν handler δηλ. μια Javascript συνάρτηση που τρέχει όταν συμβεί το event. 19

Παραδείγματα Events Πληκτρολόγιο: keydown: ένα πλήκτρο πατήθηκε keyup: ένα πλήκτρο ελευθερώθηκε Ποντίκι: click / dblclick: το ποντίκι έκανε "κλικ" / "διπλό κλικ" σε ένα στοιχείο contextmenu: "δεξί κλικ" σε ένα στοιχείο mousedown / mouseup: όταν ένα κουμπί του πονικιού πατήθηκε/ελευθερώθηκε mouseover / mouseout: όταν το ποντίκι "μπαίνει"/"βγαίνει" στην περιοχή ενός στοιχείου Document events: DOMContentLoaded: όταν η σελίδα HTML έχει φορτωθεί και το DOM έχει δημιουργηθεί https://developer.mozilla.org/en-us/docs/web/events 20

Event handlers Υπάρχουν διάφοροι τρόποι να ορίσουμε ποιος θα είναι ο handler σε ένα event: Σε ένα HTML attribute (on..), π.χ. <button onclick="alert('hello')"> Σε Javascript θέτοντας την κατάλληλη attribute του στοιχείου let b = document.getelementbyid('btn'); b.onclick = function() { alert ('Hello'); }); (Προτιμότερο) Σε κώδικα Javascript με το addeventlistener 21

Σύνδεση HTML στοιχείου με event handler με το addeventlistener <body> <button id="btn">click me</button> </body> <script type="text/javascript"> var button = document.getelementbyid('btn'); button.addeventlistener('click', function () { alert("you clicked me!"); }); </script> Το addeventlistener έχει πρώτο όρισμα το event type ( click, load, δηλ. χωρίς το on) και 2 ο τη συνάρτηση (event handler/callback) 22

Παράδειγμα σύνδεσης μέσω attribute 23

Event Object Οι Event handlers έχουν πρώτο όρισμα (ανεξάρτητα αν το χρησιμοποιεί ο handler ή όχι) το Event object Το Event object περιέχει διάφορες γενικές πληροφορίες όπως: type: π.χ. 'click' target: το στοιχείο στο οποίο στάλθηκε το event timestamp: πότε δημιουργήθηκε το event (σε milliseconds)..και "ειδικές" πληροφορίες ανάλογα τον τύπο του 24

Ποιό κουμπί στο ποντίκι πατήθηκε: event.button : 0 (αριστερό), 1 (μεσαίο), 2 (δεξί),... Ποιό πλήκτρο πατήθηκε: event.key Tα keyboard και mouse events έχουν πληροφορία αν έχει πατηθεί και κάποιο modifier key (π.χ. το Shift): ctrlkey, shiftkey, altkey, metakey 25