Pixel Art
Clicking elements and changing their classes
All Digital Images Are Made Of Pixels
Most images contain millions of pixels
Pixel Art
In “pixel art” the artist draws each individual pixel
Black and White Pixel Art
What can you create using only a hundred pixels?
Pixel Art Demo
Click a pixel to change it between black and white.
Code Your Own
Create a new file called pixelart.html
and paste in this code:
Create the Drawing Board
Between your style
tags, describe how the board should look:
.drawingBoard {
width: 300px;
height: 300px;
border-style: solid;
}
Between your body
tags, add the drawing board div:
<div class="drawingBoard">
</div>
You should see an empty box on your page.
Drawing Board Positioning
Modify your drawingBoard
style to center the board:
.drawingBoard {
width: 300px;
height: 300px;
border-style: solid;
margin-left: auto;
margin-right: auto;
}
Your box should now be in the middle of the page.
Creating the Pixels
Between your style
tags, describe how each pixel should look:
.pixel {
width: 10%;
height: 10%;
border-style: solid;
border-width: 1px;
border-color: rgba(0,0,0,0.1);
}
Between your drawingBoard
tags, create 100 pixel divs:
<div class="pixel"></div>
You should have pixels going off the bottom of your page :/
Stacking Pixels
Modify your drawingBoard
to use a flex layout:
.drawingBoard {
width: 300px;
height: 300px;
border-style: solid;
margin-left: auto;
margin-right: auto;
display: flex;
flex-wrap: wrap;
}
Your pixels should now be stacked in your board.
Smaller Borders
Modify your pixel
class to only use bottom and right borders:
.pixel {
width: 10%;
height: 10%;
border-style: solid;
border-width: 1px;
border-color: rgba(0,0,0,0.1);
border-top: 0;
border-left: 0;
}
You should now have thinner borders on each pixel box.
Get Those Pixels
Between your script
tags, get all the pixels:
var allPixels = $('.pixel');
alert( allPixels.length );
Refresh, and you should see a pop-up which says “100”.
White Pixels
Create a new CSS class called white
:
.white {
background-color: white;
}
Instead of the alert, add the class white
to every pixel:
var allPixels = $('.pixel');
allPixels.addClass('white');
Wait For Clicks
After making all pixels white, also add a click watcher:
var allPixels = $('.pixel');
allPixels.addClass('white');
allPixels.click(changeColor);
Leave a blank line then create the changeColor
function:
function changeColor() {
alert("Change the color!");
}
When you click pixels, you should see a popup message.
Black Pixels
Create a new CSS class called black
:
.black {
background-color: black;
}
When a pixel is clicked, remove white
and add black
:
function changeColor() {
var pixel = $(this);
pixel.removeClass('white');
pixel.addClass('black');
}
Black and White Pixels
Modify your changeColor
function to handle both colours:
function changeColor() {
var pixel = $(this);
if( pixel.hasClass('white') ) {
pixel.removeClass('white');
pixel.addClass('black');
}
else if( pixel.hasClass('black') ) {
pixel.removeClass('black');
pixel.addClass('white');
}
}
Pixels should now change between black and white.
All Done!
Your drawing board should now work!
Recreate your paper-based picture and take a screenshot.
Colourful Pixel Art
What could you create with more colours?
Coloured Pixel Art Demo
Click a pixel to cycle through the colour options
Going Full-Spectrum
We want pixels to change to the next colour when clicked.
Going Full-Spectrum
Modify your changeColor
function to use more colours:
if( pixel.hasClass('white') ) {
pixel.removeClass('white');
pixel.addClass('black');
}
else if( pixel.hasClass('black') ) {
pixel.removeClass('black');
pixel.addClass('red');
}
else if( pixel.hasClass('red') ) {
pixel.removeClass('red');
pixel.addClass('white');
}
Your pixels should now change through more colours.
Demo Code
Change tabs between HTML, CSS and JS to look at the final code
All Done!
Your drawing board should now work!
Create a colourful picture and take a screenshot.
High Definition Pixel Art
Challenge:
Make your pixel artboard able to draw
more detailed images.
Pixel Art: Complete
Well done! Now let’s play with some bubbles…
Loading...