SlideShare a Scribd company logo
1 of 29
JAVASCRIPT
DEVELOPMENT


DMD12 BSc
17th February 2011
Syd Lawrence                 SIT BACK /
                             SIT BACK
                             LISTEN UP
                             LISTEN UP

slideshare.net/sydlawrence
DEBUGGING



                                                         SIT BACK /
                                                         SIT BACK
                                                         LISTEN UP
                                                         LISTEN UP

http://ker-.deviantart.com/art/Mario-World-HD-19771526
CONSOLE.LOG



                                                  SIT BACK /
                                                  SIT BACK
                                                  LISTEN UP
                                                  LISTEN UP

http://www.flickr.com/photos/stacker/111324504/
TYPES



                                                        SIT BACK /
                                                        SIT BACK
                                                        LISTEN UP
                                                        LISTEN UP

http://www.flickr.com/photos/stuartpilbrow/2938100285
NUMBERS



                                                      SIT BACK /
                                                      SIT BACK
                                                      LISTEN UP
                                                      LISTEN UP

http://www.flickr.com/photos/pinksherbet/236299644/
// force something into an integer
                                                <code/>
parseInt(val)
parseInt(3.4) = 3
parseInt(“hello”) = NaN

// a random number
Math.random() = {random number between 0 & 1}
10 * Math.random() = {random number between 0 & 10}

// find the max or min
Math.max(0.5,0.6,0.7,0.2) = 0.7
Math.min(0.5,0.6,0.7,0.2) = 0.2




                                                      SIT BACK /
                                                      SIT BACK
                                                      LISTEN UP
                                                      LISTEN UP

MORE INFO: http://sydl.me/hB5RJk
STRINGS



                                                   SIT BACK /
                                                   SIT BACK
                                                   LISTEN UP
                                                   LISTEN UP

http://www.flickr.com/photos/archer10/2481165571
// find the length of a string
                                          <code/>
“hello”.length = 5

// find a specific character
“hello”.charAt(1) = “e”

// string replace
“hello world”.replace(“hello”,””)

// string append
“hello” + “ “ + ”world” = “hello world”

// watch out for numbers!
“hello” + 23 = “hello23”




                                             SIT BACK /
                                             SIT BACK
                                             LISTEN UP
                                             LISTEN UP

MORE INFO: http://sydl.me/eZreGb
BOOLEANS



                                                      SIT BACK /
                                                      SIT BACK
                                                      LISTEN UP
                                                      LISTEN UP

http://www.flickr.com/photos/troyholden/4539140841/
// simple boolean
                                   <code/>
“a” == 4                  false

// AND
“a” == 4 && 5 == 5        false

// OR
“a” == 4 || 5 == 5        true

// NOT
!false                    true




                                      SIT BACK /
                                      SIT BACK
                                      LISTEN UP
                                      LISTEN UP

MORE INFO: http://sydl.me/f6I23b
FUNCTIONS



                                                SIT BACK /
                                                SIT BACK
                                                LISTEN UP
                                                LISTEN UP

http://www.flickr.com/photos/stefz/2159280574
// define
                                   <code/>
foo = function(bar) {
   alert(bar);
   return true;
}

// assign
test = foo;

// call
test(‘hello world’);
foo(‘hello world’);




                                      SIT BACK /
                                      SIT BACK
                                      LISTEN UP
                                      LISTEN UP

MORE INFO: http://sydl.me/f6I23b
OBJECTS



                                                        SIT BACK /
                                                        SIT BACK
                                                        LISTEN UP
                                                        LISTEN UP

http://www.flickr.com/photos/h_is_for_home/2203667311
// associative array
                                   <code/>
var assoc = {
  name: 'syd',
  email: 'syd@sydlawrence.com'
};

// object
var obj = {
  name: 'syd',
  email: 'syd@sydlawrence.com'
};

alert(obj.name);
alert(obj[‘name’]);




                                      SIT BACK /
                                      SIT BACK
                                      LISTEN UP
                                      LISTEN UP

MORE INFO: http://sydl.me/f6I23b
DOM
MANIPULATION



                                                      SIT BACK /
                                                      SIT BACK
                                                      LISTEN UP
                                                      LISTEN UP

http://www.flickr.com/photos/ecstaticist/2918198742
/*
                                                     <code/>
*    RETRIEVING ELEMENTS
*/

// get by id
el = document.getElementById(‘test’);

// uses CSS 3 selector syntax
els = document.querySelectorAll(‘.some_class’);

// body
document.body


/*
*   MODIFYING STYLE / CSS
*/
el.style.height = “20px”
el.style.display = “none”
el.style.marginLeft = “20px”       // notice the marginLeft NOT margin-left


                                                                   SIT BACK /
                                                                   SIT BACK
                                                                   LISTEN UP
                                                                   LISTEN UP

MORE INFO: http://sydl.me/eYAiXT
/*
                                                      <code/>
*    CREATING ELEMENTS
*/

var el = document.createElement(‘div’);

/*
*    ASSIGNING ATTRIBUTES
*/

el.setAttribute(“id”,”test”);
el.setAttribute(“class”,”test_class”);

/*
*    INSERTING HTML
*/

el.innerHTML = “Hello World”;



////////////////////////////////////
                                                         SIT BACK /
                                                         SIT BACK
                                                         LISTEN UP
                                                         LISTEN UP
<div id=”test” class=”test_class”>Hello World</div>
EVENTS



         SIT BACK /
         SIT BACK
         LISTEN UP
         LISTEN UP
WHEN...
DO...


                                                 SIT BACK /
                                                 SIT BACK
                                                 LISTEN UP
                                                 LISTEN UP

http://www.flickr.com/photos/monkeyc/121594837
<code/>

lights.addEventListener( ‘go_green’ ,
    function() {
      car.drive();
    }
)




                                        SIT BACK /
                                        SIT BACK
                                        LISTEN UP
                                        LISTEN UP

MORE INFO: http://sydl.me/gnb8R5
document.onload = function() {
                                                <code/>
   /* this is run when the page loads */
}

element.onhover = function() {
   /* when a mouse goes over an element */
}

element.onhover ‘same’ as
      element.addEventListener(‘hover’)

// standard ones you will probably use at some point
onclick
onmouseover
onmousedown
onmouseup
onfocus
onblur
onmouseout

                                                       SIT BACK /
                                                       SIT BACK
                                                       LISTEN UP
                                                       LISTEN UP

MORE INFO: http://sydl.me/gnb8R5
BROWSER
SUPPORT


                                                       SIT BACK /
                                                        SIT BACK
                                                       LISTENUP
                                                        LISTEN UP



http://www.flickr.com/photos/annagaycoan/3750144703/
// Scott Andrew                                     <code/>
function addEvent(elm, evType, fn, useCapture) {

 if (elm.addEventListener) {

 
 elm.addEventListener(evType, fn, useCapture);

 
 return true;

 }

 else if (elm.attachEvent) {

 
 var r = elm.attachEvent('on' + evType, fn);

 
 return r;

 }

 else {

 
 elm['on' + evType] = fn;

 }
}




                                                       SIT BACK /
                                                       SIT BACK
                                                       LISTEN UP
                                                       LISTEN UP

MORE INFO: http://sydl.me/eTCe2k
CREATE YOUR
OWN EVENTS


                                                     SIT BACK /
                                                      SIT BACK
                                                     LISTENUP
                                                      LISTEN UP



http://www.flickr.com/photos/stuartbryant/79949949
<code/>


el.dispatch("my_event");




                     SIT BACK /
                     SIT BACK
                     LISTEN UP
                     LISTEN UP
A LITTLE
TASK DUE
TODAY
(TOTALLY OPTIONAL)




For this week’s lecture I want you to all have attempted to create an HTML page with an
image.
When you hover over the image, the image changes in some way.
When you move your mouse away it goes back to how it was.
                                                                                          SIT BACK /
                                                                                          SIT BACK
                                                                                          LISTEN UP
                                                                                          LISTEN UP

You may choose how the image changes
<script type="text/javascript">
                                                        <code/>
document.body.onload = function() {
  var el = document.getElementById('hover_image');
  el.onmouseover = function(){
     el.src = "http://farm3.static.flickr.com/2181/2358714455_34201aaf45_m.jpg";
  }
  el.onmouseout = function(){
     el.src = "http://farm4.static.flickr.com/3154/2922782847_71be5cf3b7_m.jpg";
  };

}

</script>

<img
     src="http://farm4.static.flickr.com/3154/2922782847_71be5cf3b7_m.jpg"
     alt="Hover over me :)"
     id ="hover_image"
/>




                                                                      SIT BACK /
                                                                      SIT BACK
                                                                      LISTEN UP
                                                                      LISTEN UP

MORE INFO: http://sydl.me/hB5H2s
HOW DID
YOU DO?


                                                       SIT BACK /
                                                        SIT BACK
                                                       LISTENUP
                                                        LISTEN UP



http://www.flickr.com/photos/annagaycoan/3750144703/
A LITTLE
TASK DUE
IN A FORTNIGHT
(OPTIONAL BUT STRONGLY ADVISED)

I am away next week, so this time you have a fortnight
For this week’s lecture I want you to all have attempted to create an HTML page with an
image.
Create a custom event
Create a button which when clicked dispatches the custom event
Listen out for the custom event, and 1 second after the event, manipulate the image in
some way.
                                                                                          SIT BACK /
                                                                                          SIT BACK
                                                                                          LISTEN UP
                                                                                          LISTEN UP

You may choose how the image changes

More Related Content

More from Syd Lawrence

High Performance PhoneGap Apps
High Performance PhoneGap AppsHigh Performance PhoneGap Apps
High Performance PhoneGap AppsSyd Lawrence
 
Music is the Soul - The Web is the Platform FOWA London 2014
Music is the Soul - The Web is the Platform FOWA London 2014Music is the Soul - The Web is the Platform FOWA London 2014
Music is the Soul - The Web is the Platform FOWA London 2014Syd Lawrence
 
Mobile Apps with Web Tech
Mobile Apps with Web TechMobile Apps with Web Tech
Mobile Apps with Web TechSyd Lawrence
 
It's the start of the web revolution, but it's not what you think
It's the start of the web revolution, but it's not what you thinkIt's the start of the web revolution, but it's not what you think
It's the start of the web revolution, but it's not what you thinkSyd Lawrence
 
Rewriting The History Books
Rewriting The History BooksRewriting The History Books
Rewriting The History BooksSyd Lawrence
 
Mobile Web App Development (Building your API)
Mobile Web App Development (Building your API)Mobile Web App Development (Building your API)
Mobile Web App Development (Building your API)Syd Lawrence
 
Making AJAX User Friendly, Google Friendly, Friendly Friendly using the Histo...
Making AJAX User Friendly, Google Friendly, Friendly Friendly using the Histo...Making AJAX User Friendly, Google Friendly, Friendly Friendly using the Histo...
Making AJAX User Friendly, Google Friendly, Friendly Friendly using the Histo...Syd Lawrence
 

More from Syd Lawrence (7)

High Performance PhoneGap Apps
High Performance PhoneGap AppsHigh Performance PhoneGap Apps
High Performance PhoneGap Apps
 
Music is the Soul - The Web is the Platform FOWA London 2014
Music is the Soul - The Web is the Platform FOWA London 2014Music is the Soul - The Web is the Platform FOWA London 2014
Music is the Soul - The Web is the Platform FOWA London 2014
 
Mobile Apps with Web Tech
Mobile Apps with Web TechMobile Apps with Web Tech
Mobile Apps with Web Tech
 
It's the start of the web revolution, but it's not what you think
It's the start of the web revolution, but it's not what you thinkIt's the start of the web revolution, but it's not what you think
It's the start of the web revolution, but it's not what you think
 
Rewriting The History Books
Rewriting The History BooksRewriting The History Books
Rewriting The History Books
 
Mobile Web App Development (Building your API)
Mobile Web App Development (Building your API)Mobile Web App Development (Building your API)
Mobile Web App Development (Building your API)
 
Making AJAX User Friendly, Google Friendly, Friendly Friendly using the Histo...
Making AJAX User Friendly, Google Friendly, Friendly Friendly using the Histo...Making AJAX User Friendly, Google Friendly, Friendly Friendly using the Histo...
Making AJAX User Friendly, Google Friendly, Friendly Friendly using the Histo...
 

Recently uploaded

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Recently uploaded (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

Javascript Development

  • 1. JAVASCRIPT DEVELOPMENT DMD12 BSc 17th February 2011 Syd Lawrence SIT BACK / SIT BACK LISTEN UP LISTEN UP slideshare.net/sydlawrence
  • 2. DEBUGGING SIT BACK / SIT BACK LISTEN UP LISTEN UP http://ker-.deviantart.com/art/Mario-World-HD-19771526
  • 3. CONSOLE.LOG SIT BACK / SIT BACK LISTEN UP LISTEN UP http://www.flickr.com/photos/stacker/111324504/
  • 4. TYPES SIT BACK / SIT BACK LISTEN UP LISTEN UP http://www.flickr.com/photos/stuartpilbrow/2938100285
  • 5. NUMBERS SIT BACK / SIT BACK LISTEN UP LISTEN UP http://www.flickr.com/photos/pinksherbet/236299644/
  • 6. // force something into an integer <code/> parseInt(val) parseInt(3.4) = 3 parseInt(“hello”) = NaN // a random number Math.random() = {random number between 0 & 1} 10 * Math.random() = {random number between 0 & 10} // find the max or min Math.max(0.5,0.6,0.7,0.2) = 0.7 Math.min(0.5,0.6,0.7,0.2) = 0.2 SIT BACK / SIT BACK LISTEN UP LISTEN UP MORE INFO: http://sydl.me/hB5RJk
  • 7. STRINGS SIT BACK / SIT BACK LISTEN UP LISTEN UP http://www.flickr.com/photos/archer10/2481165571
  • 8. // find the length of a string <code/> “hello”.length = 5 // find a specific character “hello”.charAt(1) = “e” // string replace “hello world”.replace(“hello”,””) // string append “hello” + “ “ + ”world” = “hello world” // watch out for numbers! “hello” + 23 = “hello23” SIT BACK / SIT BACK LISTEN UP LISTEN UP MORE INFO: http://sydl.me/eZreGb
  • 9. BOOLEANS SIT BACK / SIT BACK LISTEN UP LISTEN UP http://www.flickr.com/photos/troyholden/4539140841/
  • 10. // simple boolean <code/> “a” == 4 false // AND “a” == 4 && 5 == 5 false // OR “a” == 4 || 5 == 5 true // NOT !false true SIT BACK / SIT BACK LISTEN UP LISTEN UP MORE INFO: http://sydl.me/f6I23b
  • 11. FUNCTIONS SIT BACK / SIT BACK LISTEN UP LISTEN UP http://www.flickr.com/photos/stefz/2159280574
  • 12. // define <code/> foo = function(bar) {    alert(bar); return true; } // assign test = foo; // call test(‘hello world’); foo(‘hello world’); SIT BACK / SIT BACK LISTEN UP LISTEN UP MORE INFO: http://sydl.me/f6I23b
  • 13. OBJECTS SIT BACK / SIT BACK LISTEN UP LISTEN UP http://www.flickr.com/photos/h_is_for_home/2203667311
  • 14. // associative array <code/> var assoc = {   name: 'syd',   email: 'syd@sydlawrence.com' }; // object var obj = {   name: 'syd',   email: 'syd@sydlawrence.com' }; alert(obj.name); alert(obj[‘name’]); SIT BACK / SIT BACK LISTEN UP LISTEN UP MORE INFO: http://sydl.me/f6I23b
  • 15. DOM MANIPULATION SIT BACK / SIT BACK LISTEN UP LISTEN UP http://www.flickr.com/photos/ecstaticist/2918198742
  • 16. /* <code/> * RETRIEVING ELEMENTS */ // get by id el = document.getElementById(‘test’); // uses CSS 3 selector syntax els = document.querySelectorAll(‘.some_class’); // body document.body /* * MODIFYING STYLE / CSS */ el.style.height = “20px” el.style.display = “none” el.style.marginLeft = “20px” // notice the marginLeft NOT margin-left SIT BACK / SIT BACK LISTEN UP LISTEN UP MORE INFO: http://sydl.me/eYAiXT
  • 17. /* <code/> * CREATING ELEMENTS */ var el = document.createElement(‘div’); /* * ASSIGNING ATTRIBUTES */ el.setAttribute(“id”,”test”); el.setAttribute(“class”,”test_class”); /* * INSERTING HTML */ el.innerHTML = “Hello World”; //////////////////////////////////// SIT BACK / SIT BACK LISTEN UP LISTEN UP <div id=”test” class=”test_class”>Hello World</div>
  • 18. EVENTS SIT BACK / SIT BACK LISTEN UP LISTEN UP
  • 19. WHEN... DO... SIT BACK / SIT BACK LISTEN UP LISTEN UP http://www.flickr.com/photos/monkeyc/121594837
  • 20. <code/> lights.addEventListener( ‘go_green’ , function() { car.drive(); } ) SIT BACK / SIT BACK LISTEN UP LISTEN UP MORE INFO: http://sydl.me/gnb8R5
  • 21. document.onload = function() { <code/> /* this is run when the page loads */ } element.onhover = function() { /* when a mouse goes over an element */ } element.onhover ‘same’ as element.addEventListener(‘hover’) // standard ones you will probably use at some point onclick onmouseover onmousedown onmouseup onfocus onblur onmouseout SIT BACK / SIT BACK LISTEN UP LISTEN UP MORE INFO: http://sydl.me/gnb8R5
  • 22. BROWSER SUPPORT SIT BACK / SIT BACK LISTENUP LISTEN UP http://www.flickr.com/photos/annagaycoan/3750144703/
  • 23. // Scott Andrew <code/> function addEvent(elm, evType, fn, useCapture) { if (elm.addEventListener) { elm.addEventListener(evType, fn, useCapture); return true; } else if (elm.attachEvent) { var r = elm.attachEvent('on' + evType, fn); return r; } else { elm['on' + evType] = fn; } } SIT BACK / SIT BACK LISTEN UP LISTEN UP MORE INFO: http://sydl.me/eTCe2k
  • 24. CREATE YOUR OWN EVENTS SIT BACK / SIT BACK LISTENUP LISTEN UP http://www.flickr.com/photos/stuartbryant/79949949
  • 25. <code/> el.dispatch("my_event"); SIT BACK / SIT BACK LISTEN UP LISTEN UP
  • 26. A LITTLE TASK DUE TODAY (TOTALLY OPTIONAL) For this week’s lecture I want you to all have attempted to create an HTML page with an image. When you hover over the image, the image changes in some way. When you move your mouse away it goes back to how it was. SIT BACK / SIT BACK LISTEN UP LISTEN UP You may choose how the image changes
  • 27. <script type="text/javascript"> <code/> document.body.onload = function() { var el = document.getElementById('hover_image'); el.onmouseover = function(){ el.src = "http://farm3.static.flickr.com/2181/2358714455_34201aaf45_m.jpg"; } el.onmouseout = function(){ el.src = "http://farm4.static.flickr.com/3154/2922782847_71be5cf3b7_m.jpg"; }; } </script> <img src="http://farm4.static.flickr.com/3154/2922782847_71be5cf3b7_m.jpg" alt="Hover over me :)" id ="hover_image" /> SIT BACK / SIT BACK LISTEN UP LISTEN UP MORE INFO: http://sydl.me/hB5H2s
  • 28. HOW DID YOU DO? SIT BACK / SIT BACK LISTENUP LISTEN UP http://www.flickr.com/photos/annagaycoan/3750144703/
  • 29. A LITTLE TASK DUE IN A FORTNIGHT (OPTIONAL BUT STRONGLY ADVISED) I am away next week, so this time you have a fortnight For this week’s lecture I want you to all have attempted to create an HTML page with an image. Create a custom event Create a button which when clicked dispatches the custom event Listen out for the custom event, and 1 second after the event, manipulate the image in some way. SIT BACK / SIT BACK LISTEN UP LISTEN UP You may choose how the image changes

Editor's Notes

  1. \n
  2. Do it...\nIf you come across a bug....\nFind out what is causing it\nFind out why\nTest with debug code\n
  3. Chrome developer tools\nFirefox firebug\nInternet explorer, developer toolbar.... Forget it\nSafari developer tools\n
  4. As with all languages there are different &amp;#x2018;types&amp;#x2019; of variables\n
  5. 1, 2, 3\n
  6. \n
  7. &amp;#x201C;hello&amp;#x201D;, &amp;#x201C;test&amp;#x201D;, &amp;#x201C;this is a test&amp;#x201D;\n
  8. \n
  9. true, false\n
  10. \n
  11. methods\n
  12. functions are variables also\n
  13. as you may have noticed on last weeks slides, associative arrays are now objects also\n
  14. Arrays are now objects also, such as associative arrays\n
  15. Document Object Model (HTML etc etc)\n
  16. \n
  17. \n
  18. JavaScript is event driven...\n
  19. When the light goes green...\nDrive the car\n
  20. THIS DOES NOT WORK IN &lt; IE 9\nJust like in actionscript\n
  21. This works in all browsers, however it replaces the function each time..\n
  22. Different browsers have different capabilities, so we often have to implement &amp;#x2018;fixes&amp;#x2019; to get it to do something. Such as events\n
  23. This works cross browser\n
  24. Different browsers have different capabilities, so we often have to have to check which way to do something. Such as events\n
  25. This works cross browser\n
  26. Want to know more\n\nMozilla Developer Network\nHTML5 Spec\nMy Fancy-box fork on github\n
  27. This works cross browser\n
  28. How did you do?\n
  29. \n