In short I believe this is the answer:
$(document).foundation();
$('.reveal-modal').on('opened', function(){
$(window).trigger('resize');
});
OR
$(document).foundation();
$(document).on('opened', '[data-reveal]', function () {
$(window).trigger('resize');
});
I looked at the following references:
- Foundation 4.1.2: Orbit slider not shown in Reveal window
- The one you listed as "hacky fixes" above
- Squashed picture when using Orbit in a Reveal
- Orbit height not set on accordion.
It looks like the old hack for 4.1.2 just called the compute_dimension
method to resize the modal once it was opened. I looked in the foundation.orbit.js file and found $(window).on('resize', self.compute_dimensions);
, around line 280.
Instead of $(window).trigger('resize.fndtn.orbit');
I used $(window).trigger('resize');
and removed the line $(this).find('[data-orbit]').css('height','');
.
I forked your jsfiddle and added the changes here.
I hope that helps.