diff options
Diffstat (limited to 'site/public/javascripts/_env.js')
| -rw-r--r-- | site/public/javascripts/_env.js | 496 |
1 files changed, 0 insertions, 496 deletions
diff --git a/site/public/javascripts/_env.js b/site/public/javascripts/_env.js deleted file mode 100644 index 4a4d71b..0000000 --- a/site/public/javascripts/_env.js +++ /dev/null @@ -1,496 +0,0 @@ -var base_href = "http://okfocus.s3.amazonaws.com/2h/" -var box_images = shuffle([ - "1.gif", "2.gif", "3.gif", "4.gif", "5.gif", -// "dies2.gif", "dies3.gif", - "6.gif", "7.gif", "8.gif", "9.gif", - "12.gif", "13.gif", "14.gif", "15.gif", - "16.gif", "17.gif", // "CCP-GIF.gif", "dies1.gif", -]) - -var strips = [] - -var done_loading = false, menu_open = false, entry_open = false - -var environment = {}, hashes = {} -environment.init = function(){ - var loader = new Loader(function(){ - environment.ready() - }) - loader.preloadImages(box_images.map(function(url){ - return base_href + url - })) - loader.ready() -} -environment.ready = function(){ - if (window.innerWidth < 500) document.body.classList.add('mobile') - - controls = new MX.OrbitCamera({ - radius: 1000, - radiusRange: [ 10, 2000 ], - rotationX: PI/2, - rotationY: PI, - wheelEase: 20, - ease: 100 - }) - controls.init() - - $('.cat').click( function(){ - $('.cat').removeClass('active') - $('.sub').removeClass('active') - $(this).addClass('active') - $(this).next('.sub').addClass('active') - }) - - $("nav a").click(function(e){ - e.preventDefault() - - var hash = "#" + $(this).data("hash") - if (done_loading && window.location.hash == hash) return - window.location.hash = hash - - $("nav a.active").removeClass("active") - $(this).addClass("active") - open_entry() - - var page = $(this).attr("href") - if (page.indexOf("#") !== -1) page = "#" - - $("#entry_container").removeClass("visible") - - var $loader = $("<div>") - $loader.load(page + " .entry", function(){ - display_entry($loader.children()[0]) - }) - - }) - - $("nav .about").click(function(e){ - e.preventDefault() - - if (done_loading && window.location.hash == "#about") return - window.location.hash = "#about" - - $("nav a.active").removeClass("active") - open_entry() - - $("#entry_container").removeClass("visible") - var $loader = $("<div>") - $loader.load("about.html .entry", function(){ - display_entry($loader.children()[0]) - }) - }) - $("nav .contact").click(function(e){ - e.preventDefault() - - if (done_loading && window.location.hash == "#contact") return - window.location.hash = "#contact" - - $("nav a.active").removeClass("active") - open_entry() - - $("#entry_container").removeClass("visible") - var $loader = $("<div>") - $loader.load("contact.html .entry", function(){ - display_entry($loader.children()[0]) - }) - }) - $("nav .index").click(function(e){ - e.preventDefault() - - if (done_loading && window.location.hash == "#index") return - window.location.hash = "#index" - - $("nav a.active").removeClass("active") - open_entry() - - $("#entry_container").removeClass("visible") - var $loader = $("<div>") - $loader.load("all.html .entry", function(){ - display_entry($loader.children()[0]) - }) - }) - - $(".toggleRapper").click(toggle_menu) - $(".toplogo").click(hide_entry) - $(document).on("click", ".project", function(){ - var hash = as_hash( $(this).find("span").text() ) - load_hash(hash) - }) - - $(window).mousedown(function(e){ - if (! menu_open) { - controls.pause() - controls.opt.ease = 10 - } - }) - $(window).mouseup(function(e){ - if (! menu_open) { - controls.pause() - } - controls.opt.ease = 100 - }) - $(window).mousemove(function(e){ - if (menu_open || controls.dragging) return - var x = e.pageX/window.innerWidth - var xmid = pow( abs( 2 * (x - 0.5) ), 1/2 ) - var y = e.pageY/window.innerHeight - var ymid = pow( abs( 2 * (y - 0.5) ), 1/2 ) - var z = dist( xmid, ymid, 0, 0 ) - controls.zoomPercent( clamp(z - 0.3, 0, 1) ) - controls.move( - (x) * TWO_PI * 4, - PI/2 + (1-y) * TWO_PI * 4 - ) - }) - - $("body").removeClass('loading') - - var current_hash = window.location.hash.replace("#","") - $("nav a").each(function(){ - var key = as_hash(this.innerHTML) - hashes[key] = this - $(this).data("hash", key) - }) - hashes['about'] = $("nav .about") - hashes['contact'] = $("nav .contact") - hashes['index'] = $("nav .index") - - if (current_hash in hashes) { - toggle_menu() - load_hash(current_hash) - setTimeout(build_scene, 200) - } - else { - build_scene() - } - - setTimeout(function(){ done_loading = true }, 200) -// $(".mx-scenery").on("mouseenter", function(e){ -// e.stopPropagation() -// $(this).addClass("red") -// }) -// $(".mx-scenery").on("mouseleave", function(e){ -// e.stopPropagation() -// $(".red").removeClass("red") -// }) - - $(document).on('webkitfullscreenchange mozfullscreenchange fullscreenchange MSFullscreenChange', function(){ - setTimeout(function(){ - if (window.innerHeight == screen.height) { - $("html").addClass("full-screen") - } - else { - $("html").removeClass("full-screen") - } - setTimeout(function(){ - resize_gallery() - }, 100) - }, 500) - }) -} - - -function build_scene () { - strips.push( new Strip({ - images: box_images.slice(0, 5), - x: -100, - y: 100, - rotationY: PI/4, - offset: 100, - }) ) - - strips.push( new Strip({ - images: box_images.slice(5, 10), - x: 100, - y: 100, - rotationX: PI/4, - rotationY: PI/-100, - offset: 200, - }) ) - - strips.push( new Strip({ - images: box_images.slice(10, 15), - x: 0, - y: 100, - z: 100, - rotationY: PI/6, - offset: 300, - }) ) - - strips.push( new Strip({ - images: box_images.slice(15, 20), - x: 0, - y: 100, - z: -50, - rotationX: PI/2, - rotationY: PI/100, - offset: 200, - }) ) - - strips.forEach(function(strip){ strip.update(0) }) - - scene.update() - environment.update = environment.updateOnReady -} - -var entry_open_time = 0; - -function as_hash (txt) { - return txt.replace(/\s/g,'_') -} -function load_hash (hash) { - var $menu = $(hashes[hash]) - $(".active").removeClass('active') - $menu.parent().addClass('active') - $menu.parent().prev(".cat").addClass('active') - $menu.trigger("click") -} -function open_entry () { - if (is_mobile) { - $("body").removeClass("menuActive") - } - if (! entry_open) { - entry_open = true - controls.zoom(40) - controls.wheel.lock() - $("#scene").addClass("fade") - setTimeout(function(){ $("#scene").hide() }, 200) - } - entry_open_time = +new Date - $("#entry_container").addClass("fade") -} -function display_entry ($el) { - var now = +new Date - setTimeout(function(){ - $("#entry_container").empty().append($el) - $("#entry_container").removeClass("fade") - build_gallery() - if (is_mobile) { - $(".video").each(function(){ - load_video( $(this) ) - }) - } - if (window.location.hash.match(/about|contact|index/)) { - setTimeout(function(){ - $(".entry").addClass("ready") - }, 100) - setTimeout(function(){ - $(".entry").addClass("done") - }, 600) - } - else { - $(".entry").addClass("ready") - } - }, max(0, 200 - (now - entry_open_time)) + 20) - - $("#entry_container").scrollTop(0) - $("#entry_container").addClass("visible") - controls.setZoom(100000) - setTimeout(function(){ controls.zoom(100) }, 100) -} -function hide_entry () { - $("nav .active").removeClass("active") - $("#entry_container").addClass("fade") - setTimeout(function(){ - $("#entry_container").empty() - }, 200) - $("#scene").show().removeClass("fade") - controls.zoom(1500) - window.location.hash = "#" -} -function toggle_menu (){ - $("body").toggleClass("menuActive") - menu_open = $("body").hasClass("menuActive") - - if (! is_mobile) { - $("#entry_container").removeClass("visible") - } - - if (menu_open) { - controls.pause() - } - if (! menu_open && entry_open && ! is_mobile) { - entry_open = false - controls.wheel.unlock() - setTimeout(function(){ $("#scene").removeClass("fade") }) - $("nav a.active").removeClass("active") - } - if (! menu_open && ! entry_open) { - window.location.hash = "#" - $("#scene").show() - $("#entry_container").empty() - controls.zoom(1500) - $('.cat').removeClass('active') - $('.sub').removeClass('active') - } -} - -var gallery = null -function build_gallery () { - videos = [] - var $el = $("#entry_container #okgallery") - if (! $el.length) { - gallery = null - return - } - var $next = $el.next(".next") - var $caption = $el.next(".caption") - gallery = new Flickity( "#okgallery", { - cellSelector: '.cell', - cellAlign: 'left', - wrapAround: true, - prevNextButtons: false, - pageDots: true, - setGallerySize: false, - draggable: true, - imagesLoaded: true, - }) - - $("#okgallery .video").each(function(){ - var $play = $('<div class="play"></div>') - var $el = $(this) - $el.append($play) - $play.click(function(e){ - e.stopPropagation() - e.preventDefault() - if ($el.hasClass('loaded')) { - var player = $el.data('player') - player.api('play') - } - else { - load_video($el) - } - }) - }) - - $(".caption").click(function(){ - fullscreen($(".gallery")[0]) - }) - - gallery.on("cellSelect", function(){ - $caption.html( $(gallery.selectedElement).data("caption") ) - videos.forEach(function(player){ - player.api('pause') - }) - }) - gallery.on("settle", function(){ - $caption.html( $(gallery.selectedElement).data("caption") ) - }) - gallery.on("staticClick", function(e){ - // console.log(e) - var $el = $(e.target) - if ($el.hasClass("play")) { - // load_video($el) - } - else { - next() - } - }) - // $next.on("click", next) - function next(){ - gallery.next() - } - gallery.loader.on("progress", function(imagesLoaded, loadingImage){ - $(loadingImage.img).addClass('loaded') - }) -} -function resize_gallery () { - if (! gallery) return; - var isFullscreen = $("html").hasClass("full-screen") - $("#okgallery").find(".cell img").each(function(){ - var h = isFullscreen ? window.innerHeight : 0.6 * window.innerHeight - var w = isFullscreen ? "auto" : this.naturalWidth / this.naturalHeight * h - $(this).css({ - width: w, height: h, - }) - }) - $(".flickity-viewport").css("height","") - gallery.resize() -} -var videos = [] -function load_video ($el) { - if ($el.hasClass('loaded')) { return } - $el.addClass('loaded') - var vimeo_id = $el.data("video").match(/\d+/)[0] - var $embed = $('<iframe src="https://player.vimeo.com/video/' + vimeo_id + '?autoplay=1&title=0&byline=0&portrait=0" width="500" height="281" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>') - $el.append($embed) - var $mask = $('<div class="mask"></div>') - $el.append($mask) - var player = $f( $el.find("iframe")[0] ) - $el.data('player', player) - player.addEvent('ready', function(){ - player.addEvent('play', function(){ - $el.addClass('playing') - }) - player.addEvent('pause', function(){ - $el.removeClass('playing') - }) - }) - videos.push(player) -} -environment.update = noop -environment.updateOnReady = function(t){ - // strips.forEach(function(strip){ strip.update(t) }) - controls.delta( menu_open ? 0 : 1/16, 0) - scene.update() - controls.update() -} - -var titles = [ - "BARNEY'S, GAGA CONSTELLATION", - "CCP GAMES, EVE ONLINE", - "DIESEL ACCESSORIES", - "DIESEL CAMPAIGN FW13/SS14", - "DIESEL CAMPAIGN FW14", - "#DIESELREBOOT", - "#DIESELTRIBUTE", - "DIESEL JOGG JEANS", - "DIESEL WATCHES", - 'MAC, "UNTITLED, SELF-PORTRAIT"', - "MUGLER, BROTHERS OF ARCADIA", - "MUGLER, LADY GAGA", - "MUGLER, MEN’S FW11", - "NICOLA’S, HO HO HO CHRISTMAS SHOP", - "NICOLA'S, LANE CRAWFORD", - "NICOLA’S, NEW YORK" -] -var Strip = function( opt ){ - this.opt = opt - - var root = this.root = new MX.Object3D () - root.x = opt.x || 0 - root.y = opt.y || 0 - root.z = opt.z || 0 - root.rotationX = opt.rotationX || 0 - root.rotationY = opt.rotationY || 0 - root.rotationZ = opt.rotationZ || 0 - root.addTo(scene) - - var prev = root - this.els = opt.images.map(function(url, i){ - var el = new MX.Image({ - src: base_href + url, - onload: function(img){ - } - }) - $(el.el).attr("data-title", choice(titles)) - el.setCSSTransformOrigin( "50% 100%" ) - el.addTo(prev) - el.update() - prev = el - return el - }) -} -Strip.prototype.update = function(t){ - var count = this.els.length - var offset = this.opt.offset - - t += offset - - // this.root.rotationZ = t/10000 - this.els.forEach(function(el, i){ - el.rotationX = i/count * Math.PI * 2 - el.skewY = cos( (1 + i) * 2 * Math.PI * t/100000 + 100 ) / 10 - el.y = el.height / 2 - }) -} |
