123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- /* jshint strict: false */
- var $body = $('body'),
- $characters = $('.characters'),
- $posters = $('.characters-poster'),
- $names = $('.characters-list a'),
- $label = $('.characters-label');
- var backgrounds = [
- { src: 'img/1.jpg', valign: 'top' },
- { src: 'img/2.jpg', valign: 'top' },
- { src: 'img/3.jpg', valign: 'top' },
- { src: 'img/2.jpg', delay: 6500, video: [
- 'img/intro.mp4',
- 'img/intro.ogv',
- 'img/intro.webm'
- ] },
- ];
- var posters = [
- { src: 'img/poster-ja.jpg' },
- { src: 'img/poster-mr.jpg' },
- { src: 'img/poster-jb.jpg' },
- { src: 'img/poster-jg.jpg' },
- { src: 'img/poster-eg.jpg' },
- { src: 'img/poster-bw.jpg' },
- { src: 'img/poster-rd.jpg' },
- { src: 'img/poster-pb.jpg' },
- { src: 'img/poster-rl.jpg' },
- { src: 'img/poster-dh.jpg' },
- ];
- var backdrops = [
- { src: 'img/backdrop-ja.jpg' },
- { src: 'img/backdrop-mr.jpg' },
- { src: 'img/backdrop-jb.jpg' },
- { src: 'img/backdrop-jg.jpg' },
- { src: 'img/backdrop-eg.jpg' },
- { src: 'img/backdrop-bw.jpg' },
- { src: 'img/backdrop-rd.jpg' },
- { src: 'img/backdrop-pb.jpg' },
- { src: 'img/backdrop-rl.jpg' },
- { src: 'img/backdrop-dh.jpg' },
- ];
- $('html').addClass('animated');
- var displayBackdrops = false;
- $body.vegas({
- preload: true,
- overlay: true,
- transitionDelay: 4000,
- delay: 10000,
- slides: backgrounds,
- walk: function (nb, settings) {
- if (settings.video) {
- $('.logo').addClass('collapsed');
- } else {
- $('.logo').removeClass('collapsed');
- }
- }
- });
- $posters.vegas({
- preload: true,
- transition: 'swirlLeft2',
- transitionDelay: 1000,
- timer: false,
- delay: 5000,
- slides: posters,
- walk: function (nb) {
- $('.characters-list li')
- .removeClass('active')
- .eq(nb)
- .addClass('active');
- var name = $names.eq(nb).data('character');
- $label
- .removeClass('animated');
- setTimeout(function () {
- $label
- .text(name)
- .addClass('animated');
- }, 250);
- if (displayBackdrops === true) {
- var backdrop = backdrops[nb];
- backdrop.transition = 'zoomOut';
- backdrop.transitionDelay = 1000;
- $body.vegas('options', 'delay', 1000);
- $body.vegas('options', 'slides', [ backdrop ]);
- $body.vegas('next');
- }
- }
- })
- .on('mouseenter', function () {
- displayBackdrops = true;
- $posters.vegas('trigger', 'walk');
- $posters.vegas('pause');
- })
- .on('click', debounce(function () {
- $posters.vegas('next');
- }, 250, true));
- $characters
- .on('mouseenter', function () {
- displayBackdrops = true;
- })
- .on('mouseleave', function () {
- $body.vegas('options', 'slides', backgrounds);
- $body.vegas('next');
- $body.vegas('options', 'delay', 4000);
- displayBackdrops = false;
- $posters.vegas('play');
- });
- $names
- .on('mouseenter', debounce(function (e) {
- e.preventDefault();
- var index = $(this).index('.characters-list a');
- $posters
- .vegas('jump', index)
- .vegas('pause');
- }, 250));
- // JavaScript Debounce Function
- // By David Walsh
- // http://davidwalsh.name/javascript-debounce-function
- function debounce (func, wait, immediate) {
- var timeout;
- return function () {
- var context = this,
- args = arguments,
- later = function() {
- timeout = null;
- if (!immediate) {
- func.apply(context, args);
- }
- },
- callNow = immediate && !timeout;
- clearTimeout(timeout);
- timeout = setTimeout(later, wait || 500);
- if (callNow) {
- func.apply(context, args);
- }
- };
- }
-
|