In my very personal opinion, it depends much of your project. But, in general, a new CSS block is usually better accepted as better practice. When you style your DOM elements using js the maintenance can become very difficult to maintain. Personaly, I like to use js to edit the class attribute, instead styling directly the element. Example:
transition: 'all 3s'
<div id="teste" style="display:none; opacity: 0; " >...</div>
I rather prefer the following approach:
<style type="text/css" >
transition: all 3s;
<div id="teste" class="visible" >...</div>
I made a very rudimentar fiddle to illustrate it: http://jsfiddle.net/Vtra8/1/
In my view, it is a lot easier to understand, to maintain e to debug your code specially when working on collaborative projects.