IE 5.5 had a lot of this with behaviors. IE 6 built on it further. Firefox push a lot of similar concepts with XUL. These ideas aren't especially new. There are a lot of subtlties that make this stuf really tricky.
Performance improvements in modern browsers (V8 and webkit) along with more memory and faster processors are the game changers here.
Keep in mind that at the time it was all based on the Trident rendering engine introduced in IE4. The system requirements at the time were Win95 and 16MB of RAM. You write different code for that vs. a modern desktop today.
For details on behaviors see http://msdn.microsoft.com/en-us/library/ms531079(v=vs.85).as....