Since this lesson is browser-based, we'll use JavaScript instead of ActionScript, and for this lesson we'll support Class A browsers. ActionScript and JavaScript are both ECMAScript so feel free to apply logic across both platforms. You can add support for legacy Internet Explorer on your own time, but keep in mind the JScript engine is terribly slow and there is a good chance your masterpiece will crash an old IE8 install.
This is what we will be making today:
Here is the code - we will analyze it below:
The JavaScript:
The CSS:
The Random Colors
First we want to acknowledge how we get random colors. As mentioned, 16777215 == ffffff in hexadecimal, which translate to white. From there, we can generate colors with math using the following:
The DOM Fragment
Secondly, we want to acknowledge that we create a DOM fragment with document.createDocumentFragment and then append all our node divs to it, and only then do we add it to the body. This drastically speeds up our processing. DOM fragments are pretty common in the world of website design and development when using libraries like jQuery, but creating them with vanilla JS isn't seen very often. You can read more about it at MDN.
Make It Your Own
Lastly, during the iteration of all our nodes, we add our randomness and create the art:
Play with those values to greatly change up how your art appears. We used 5,000 nodes for our piece. Have fun!
Great Job! looks great! One suggestion:
ReplyDeleteIt would make more sense to create the style attributes in the first loop right after you create the element.
The last step should be appending "frag" to the DOM. Instead of writing the elements to the DOM midway, then getting the elements again, looping through them, and changing it in the browser.
It's much faster the other way.
Yep I agree it's cleaner too. Good eye :)
Delete