I solved my issue by creating a fake duplicate markers below the timeline. Basically it wasn't working because the individual scenes weren't moving so they were never being activated. Now for every marker I created a div that is the height of the window, and made sure the pinned timeline doesn't push them forward.
function setupAnimations() {
var progress = $('.fill-bar'),
show = new TimelineMax()
.set(progress, {scaleY: 0, transformOrigin: "center top", ease: Power0.easeNone})
.to(progress, 1, { scaleY: 1, transformOrigin: "center top", ease: Power0.easeNone});
var timeline = new ScrollMagic.Scene({
triggerElement: "#timeline",
duration: $(window).height() * $('.period').length,
triggerHook: 0
})
.setPin("#timeline", {pushFollowers: false})
.setTween(show)
.addTo(controller);
thing.each(function(index, elem) {
new ScrollMagic.Scene({
triggerElement: elem,
triggerHook: "onLeave",
offset: $(window).height() * -1
})
.addTo(controller)
.addIndicators({name: "period marker"});
});
}
setupAnimations();