123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- /*
- Hyperspace by HTML5 UP
- html5up.net | @ajlkn
- Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
- */
- (function($) {
- skel.breakpoints({
- xlarge: '(max-width: 1680px)',
- large: '(max-width: 1280px)',
- medium: '(max-width: 980px)',
- small: '(max-width: 736px)',
- xsmall: '(max-width: 480px)'
- });
- $(function() {
- var $window = $(window),
- $body = $('body'),
- $sidebar = $('#sidebar');
- // Hack: Enable IE flexbox workarounds.
- if (skel.vars.IEVersion < 12)
- $body.addClass('is-ie');
- // Disable animations/transitions until the page has loaded.
- if (skel.canUse('transition'))
- $body.addClass('is-loading');
- $window.on('load', function() {
- window.setTimeout(function() {
- $body.removeClass('is-loading');
- }, 100);
- });
- // Forms.
- // Fix: Placeholder polyfill.
- $('form').placeholder();
- // Hack: Activate non-input submits.
- $('form').on('click', '.submit', function(event) {
- // Stop propagation, default.
- event.stopPropagation();
- event.preventDefault();
- // Submit form.
- $(this).parents('form').submit();
- });
- // Prioritize "important" elements on medium.
- skel.on('+medium -medium', function() {
- $.prioritize(
- '.important\\28 medium\\29',
- skel.breakpoint('medium').active
- );
- });
- // Sidebar.
- if ($sidebar.length > 0) {
- var $sidebar_a = $sidebar.find('a');
- $sidebar_a
- .addClass('scrolly')
- .on('click', function() {
- var $this = $(this);
- // External link? Bail.
- if ($this.attr('href').charAt(0) != '#')
- return;
- // Deactivate all links.
- $sidebar_a.removeClass('active');
- // Activate link *and* lock it (so Scrollex doesn't try to activate other links as we're scrolling to this one's section).
- $this
- .addClass('active')
- .addClass('active-locked');
- })
- .each(function() {
- var $this = $(this),
- id = $this.attr('href'),
- $section = $(id);
- // No section for this link? Bail.
- if ($section.length < 1)
- return;
- // Scrollex.
- $section.scrollex({
- mode: 'middle',
- top: '-20vh',
- bottom: '-20vh',
- initialize: function() {
- // Deactivate section.
- if (skel.canUse('transition'))
- $section.addClass('inactive');
- },
- enter: function() {
- // Activate section.
- $section.removeClass('inactive');
- // No locked links? Deactivate all links and activate this section's one.
- if ($sidebar_a.filter('.active-locked').length == 0) {
- $sidebar_a.removeClass('active');
- $this.addClass('active');
- }
- // Otherwise, if this section's link is the one that's locked, unlock it.
- else if ($this.hasClass('active-locked'))
- $this.removeClass('active-locked');
- }
- });
- });
- }
- // Scrolly.
- $('.scrolly').scrolly({
- speed: 1000,
- offset: function() {
- // If <=large, >small, and sidebar is present, use its height as the offset.
- if (skel.breakpoint('large').active
- && !skel.breakpoint('small').active
- && $sidebar.length > 0)
- return $sidebar.height();
- return 0;
- }
- });
- // Spotlights.
- $('.spotlights > section')
- .scrollex({
- mode: 'middle',
- top: '-10vh',
- bottom: '-10vh',
- initialize: function() {
- // Deactivate section.
- if (skel.canUse('transition'))
- $(this).addClass('inactive');
- },
- enter: function() {
- // Activate section.
- $(this).removeClass('inactive');
- }
- })
- .each(function() {
- var $this = $(this),
- $image = $this.find('.image'),
- $img = $image.find('img'),
- x;
- // Assign image.
- $image.css('background-image', 'url(' + $img.attr('src') + ')');
- // Set background position.
- if (x = $img.data('position'))
- $image.css('background-position', x);
- // Hide <img>.
- $img.hide();
- });
- // Features.
- if (skel.canUse('transition'))
- $('.features')
- .scrollex({
- mode: 'middle',
- top: '-20vh',
- bottom: '-20vh',
- initialize: function() {
- // Deactivate section.
- $(this).addClass('inactive');
- },
- enter: function() {
- // Activate section.
- $(this).removeClass('inactive');
- }
- });
- });
- })(jQuery);
|