summaryrefslogtreecommitdiff
path: root/studio-susie/public/assets/js/app.js
diff options
context:
space:
mode:
Diffstat (limited to 'studio-susie/public/assets/js/app.js')
-rw-r--r--studio-susie/public/assets/js/app.js108
1 files changed, 108 insertions, 0 deletions
diff --git a/studio-susie/public/assets/js/app.js b/studio-susie/public/assets/js/app.js
new file mode 100644
index 0000000..0f64ad2
--- /dev/null
+++ b/studio-susie/public/assets/js/app.js
@@ -0,0 +1,108 @@
+var app = (function() {
+
+ var app = {}
+ var last_t = 0, initial_t = 0
+
+ app.init = function() {
+ app.loader = new Loader ()
+ app.okcms = new OKCMS ()
+ app.okcms.getAll().done(function(data) {
+ app.bind()
+ app.build(data)
+ app.resize()
+ app.ready()
+ }).fail(function(err) {
+ console.error('error loading cms', err)
+ })
+ }
+
+ app.bind = function() {
+ if (is_mobile) {
+ document.addEventListener('touchmove', function(e) {
+ e.preventDefault()
+ })
+ FastClick.attach(document.body)
+ }
+ $(window).resize(app.resize)
+ }
+
+ app.build = function(data) {
+ window.scrollTo(0,0)
+ app.views = {}
+ app.nav = new NavView ()
+ app.views.home = new HomeView({
+ data: data.home
+ })
+ app.views.page = new PageView({
+ data: data.page
+ })
+ app.views.painting = new PaintingView({
+ data: data.painting
+ })
+ app.views.list = new ListView({
+ })
+
+ app.preload()
+ }
+
+ app.preload = function(){
+ var $sections = $("#fullpage .section")
+ var $first = $sections.first()
+ app.loader.preloadImage( $first.data("image"), function(){
+ $sections.each(function(index){
+ var img = new Image ()
+ var $div = $("<div>")
+ $div.data("index", index)
+ $("#list").append($div)
+ var url = $(this).data("image")
+ var loaded = false
+ var $el = $(this)
+ img.onload = function(){
+ $el.css("background-image", "url(" + url + ")")
+ $div.css("background-image", "url(" + url + ")")
+ }
+ img.src = url
+ })
+ $('#fullpage').fullpage({
+ css3: true,
+ scrollingSpeed: 1000
+ })
+ })
+ }
+
+ app.ready = function() {
+ if (last_t) return
+ setTimeout(function () {
+ $("html").removeClass("loading")
+ }, 50)
+ app.view = null
+ app.router = new SiteRouter()
+ app.router.launch()
+ // app.animate(0)
+ }
+
+ app.animate = function (t) {
+ requestAnimationFrame(app.animate)
+ if (! initial_t) {
+ initial_t = t
+ return
+ }
+ t -= initial_t
+ var dt = t - last_t
+ last_t = t
+ }
+
+ app.resize = function () {
+ }
+
+ app.iscroll_options = {
+ mouseWheel: true,
+ scrollbars: true,
+ click: is_android,
+ }
+
+ return app
+
+})()
+
+document.addEventListener('DOMContentLoaded', app.init)