18 July 2017 - elementals.js 3.0 RC 1 -- Took a while
By Jason M. Knight (aka Deathshadow)

Release candidate 1 of elementals.js 3.0 has been released. This breaks from the compatibility chain of 2.x/earlier and should be treated as a whole new and different project.

What took so long, and why the break?

YES, this release took FAR longer than planned -- to the tune of nearly four months.. The biggest reason was I had a full-time job consuming the share of my time; paying work comes before stuff I do basically for free to at least TRY and help others... but now that said job is past (after a breakup that makes most divorces look civil), back to plucking away at this.

It was also delayed as I wanted to get as much feedback as I could on what was already in place. That feedback caused me to reconsider at a low level how not only elementals.js worked, but also how it was laid out and organized both internally, and from a documentation standpoint. Switching to Objects with sub-methods for a lot of common operations simply makes more sense and allows me to create the list of what needs to be documented and how the navigation on the site for that documentation works automatically. All I have to do when something new is added is pull up a list that says "Hey, you need to document this function/method!". This sped the development process greatly despite the relative lack of time I had to put into things.

14 March 2017 - elementals.js 2.0 RC 3 -- a cold day in hell
By Jason M. Knight (aka Deathshadow)

Release candidate 3 of elementals.js has been released. There were minor bugfixes in a couple functions, but the big addition is the "replace" type to _.nodeAdd which basically does the same as Element.parentNode.replaceChild(newElement, Element);. Might prove handy in a number of cases such as when creating a new wrapping DIV to replace an existing one so that innerHTML can be applied to an element before it is on the DOM.

Due to the relatively minor changes and zero user-facing changes in existing functionality, I am not pushing the planned production release date of 25 March 2017 forward with this release as is typical for a new RC.

With the winter storm barelling in to ravage the area tomorrow, figured I'd at least toss something up on the site before I end up going without power for a bit. NOT that I'll probably lose power or if so for very long, but I grew up in the Commiewealth of Taxachusetts where if the wind blew you went a week without power almost entirely due to the incompetance of the electric company. Normally I wouldn't worry as PSNH never showed that level of ineptitude, but it's not PSNH anymore it's this company called "Eversource" that apparently merged with N-Star meaning that many fo the people running it used to work for Con Ed...

Meaning every corner that can be cut is being cut, meaning I'm... less than hopeful -- and to be frank, I'm already unimpressed with service since the buyout/merger/whatever.

5 March 2017 - elementals.js 2.0 RC 2 and eSmooth.js
By Jason M. Knight (aka Deathshadow)

elementals.js 2.0 RC2

Release candidate 2.0 of elementals.js has been released. This includes one minor bugfix in relation to what _.queryAll returns, and a few 'new' features that are, well... they were extra code I just had hanging around so why not?

eSmooth.js Demo

Released at the same time is a new demo code some of you may like -- it's not my cup of tea but a few people asked for it, so here it is. eSmooth.js is a script using elementals.js to allow easy on-page smooth scrolling of hash links. It has several configuration options, and a halfway decent set of defaults. It works will in IE11 and all modern browsers, and gracefully degrades to normal hash behavior in unsupported browsers. You can also force support in older browsers with a global variable, but beware that forward/back history is currently broken in those browsers due to a lack of history.pushstate.


  • elementals.js
    A lightweight JavaScript library focusing on cross browser support, ECMAScript polyfills, and DOM manipulation.
  • eFlipper.js
    An image carousel script using elementals.js
  • eProgress.js
    A JavaScript controllable progress bar using elementals.js. Based on the nProgress project that relies on the much heavier jQuery library.


Browse code samples of people I've helped on various forums. These code snippets, images, and full rewrites of websites date back a decade or more, and are organized by the forum username of who I was helping. You'll find all sorts of oddball bits and pieces in here. You find any of it useful, go ahead, pick up the ball, and run with it.


Best Viewed With Eyeballs