ti premetto che non è da tanto che mi sono avvicinato all'utilizzo di JS e DOM, comunque ci provo...
fondamentalmente si tratta di gestire determinate azioni nel tempo, nel caso della modifica di una proprietà ad esempio, occorre che questa si incrementi o decrementi di un tot, a intervalli di tempo
per "gestire il tempo" JS prevede due funzioni: setTimeout e setInterval
la prima esegue una funzione con un delay (dopo un tot di tempo) per una sola volta
mentre la seconda la esegue in continuazione a intervalli uguali di tempo
le proprietà vengono "trovate" tramite il DOM e modificate
se provi a fare una ricerca su DHTML nel sito javascript di html.it vedrai che troverai molto materiale da leggere per approfondire il discorso