Video Lesson 03
This semester our class will be running 1x per week, online. In order to make the most of our weekly meeting, and to prevent "Zoom Fatigue", I will be teaching the class using a "flipped classroom" model. Here's how this model will operate in our class this semester:
- Before most classes you will be asked to watch a video lesson - the lesson for this week can be found below.
- After you watch all of the videos in today's lesson you will have a small task to perform - we will refer to these as "micro assignments". These "micro" assignments are fairly straightforward and short and are directly related to the content covered in the video lesson for the week.
- These "micro" assignments are due before our next class meeting. You cannot turn in a "micro" assignment late. We are setting up these assignments in this way so that everyone has a baseline level of knowledge of the topics being covered in the video lesson. This will allow us to make the most of our time together during our weekly course meeting.
- During our course meeting we will cover new topics during the first half of class. During the second half of class we will focus on working on a larger programming assignment together and in small groups.
Working with CSS classes using JavaScript
DOM queries that return multiple elements
Creating & adding elements programmatically
Micro Assignment #03
Your task is to edit the HTML document below to include some JavaScript that will make some changes to the page. Here is the code you will be working with:
<!doctype html>
<html>
<head>
<title>Micro 03</title>
<style>
/* you may not make any changes to the CSS rules below */
.blue {
color: blue;
}
.pink {
color: pink;
}
.square {
width: 100px;
height: 100px;
border: 1px solid black;
box-sizing: border-box;
display: inline-block;
font-size: 200%;
margin: 0px;
}
.yellow {
background-color: yellow;
}
.red {
background-color: red;
}
.orange {
background-color: orange;
}
.container {
width: 502px;
height: 202px;
border: 1px solid black;
box-sizing: border-box;
margin-top: 20px;
margin-bottom: 20px;
}
</style>
</head>
<body>
<!-- you may not directly change any HTML on this page
you can only use JavaScript in the 'script' tag below
to make changes -->
<div id="box1">
<div class="square yellow">1</div>
<div class="square yellow">3</div>
<div class="square yellow">4</div>
<div class="square yellow">2</div>
<div class="square yellow">5</div>
</div>
<div id="box2">
<div class="square red">6</div>
<div class="square red">9</div>
<div class="square red">8</div>
<div class="square red">10</div>
<div class="square red">7</div>
</div>
<div id="box4" class="container"></div>
<div id="box5" class="container"></div>
<script>
// Task #1: change all yellow squares to red square,
// and all red square to yellow squares. you must use the
// provided classes for this (you cannot use inline styles)
// HINT: use 'querySelectorAll' instead of 'getElementsByClassName' here
// this was not mentioned in the video, but 'querySelectorAll' will return
// an array of elements that represents a 'snapshot' in time of all elements
// that are members of a class, whereas 'getElementsByClassName' will return an
// 'auto-updating' object that will change whenever the class membership
// of an element changes.
// Task #2: change all squares that have even numbers in them
// so that they use the 'blue' class, and all odd numbered
// squares so that they use the 'pink' class
// Task #3: add 10 divs with classes of 'orange' and 'square'
// to the div with an id of 'box4'
// Task #4: add 10 divs with a class of 'square' and a RANDOMLY
// selected class of orange, red or yellow to the div
// with an id of box5
</script>
</body>
</html>
Your finished product should look like the following image:
Here are some hints to get you started:
- You can ONLY make changes to the script tag - no changes to HTML, CSS or JavaScript outside of this tag is allowed.
- You will be using a number of new DOM methods that are discussed in the videos above.
- You cannot "hard-code" any values using inline styles - if the program says to add a class to an element you cannot use
element.styleto simulate this behavior.
When you are finished please upload a copy of this file to your i6 website using the process described in Assignment 01. Name your file micro_assignment_03.html and ensure that it is accessible from within your webdev folder. You will also want to submit a link to your work on NYU Classes under the 'Assignments' tool. You will want to include this project as a link on your homepage (also described in Assignment 01)