|
// init ScrollMagic Controller |
|
var controller = new ScrollMagic.Controller({ |
|
globalSceneOptions: { |
|
duration: $('section').height(), |
|
triggerHook: .025, |
|
reverse: true |
|
} |
|
}); |
|
|
|
// Scene Handler |
|
var scene1 = new ScrollMagic.Scene({ |
|
triggerElement: "#pinned-trigger1", // point of execution |
|
duration: $(window).height() - 100, // pin element for the window height - 1 |
|
triggerHook: 0, // don't trigger until #pinned-trigger1 hits the top of the viewport |
|
reverse: true // allows the effect to trigger when scrolled in the reverse direction |
|
}) |
|
.setPin("#pinned-element1") // the element we want to pin |
|
.addTo(controller); |
|
|
|
// Scene2 Handler |
|
var scene2 = new ScrollMagic.Scene({ |
|
triggerElement: "#pinned-trigger2", // point of execution |
|
duration: 200 // pin the element for a total of 400px |
|
}) |
|
.setPin("#pinned-element2") // the element we want to pin |
|
.addTo(controller); |
|
|
|
var scene3 = new ScrollMagic.Scene({ triggerElement: '#intro' }) |
|
.setClassToggle('#intro-anchor', 'active') |
|
.addTo(controller); |
|
var scene4 = new ScrollMagic.Scene({ triggerElement: '#pinned-trigger1' }) |
|
.setClassToggle('#anchor1', 'active') |
|
.addTo(controller); |
|
var scene5 = new ScrollMagic.Scene({ triggerElement: '#pinned-trigger2' }) |
|
.setClassToggle('#anchor2', 'active') |
|
.addTo(controller); |
|
var scene6 = new ScrollMagic.Scene({ triggerElement: '#pinned-trigger3' }) |
|
.setClassToggle('#anchor3', 'active') |
|
.addTo(controller); |
|
|
|
// Change behaviour of controller |
|
// to animate scroll instead of jump |
|
controller.scrollTo(function(target) { |
|
|
|
TweenMax.to(window, 0.5, { |
|
scrollTo : { |
|
y : target, |
|
autoKill : true // Allow scroll position to change outside itself |
|
}, |
|
ease : Cubic.easeInOut |
|
}); |
|
|
|
}); |
|
|
|
$(document).on("click", "a[href^=#]", function(e) { |
|
var id = $(this).attr("href"); |
|
|
|
if($(id).length > 0) { |
|
e.preventDefault(); |
|
|
|
// trigger scroll |
|
controller.scrollTo(id); |
|
|
|
// If supported by the browser we can also update the URL |
|
if (window.history && window.history.pushState) { |
|
history.pushState("", document.title, id); |
|
} |
|
} |
|
|
|
}); |