And if so, what aspects of the fade can you effect? (timing? rate? cross-fade? through black?)

I know nothing about Javascript, yet I design web pages… it’s my secret shame!

LOL your secret shame. :-)
You can not do it with a body tag, bit if you want to have 2 <div>s with a z-index of 0, every other element with z-index of 1, give each div a style="background-image:url();width:100%;height:100%;" and so then use javascript to dynamically change their opacities that would work.

e.g.

for (i=0, k=100; i <= 100, k >= 0; k--, i++) {
    document.getElementById("startingimagediv").style.opacity = k;
    document.getElementById("endingimagediv").style.opacity = i;
}