diff options
Diffstat (limited to 'public/assets/js/lib')
| -rw-r--r-- | public/assets/js/lib/HeaderView.js | 31 | ||||
| -rw-r--r-- | public/assets/js/lib/MenuView.js | 16 | ||||
| -rw-r--r-- | public/assets/js/lib/NavView.js | 37 | ||||
| -rw-r--r-- | public/assets/js/lib/ProjectView.js | 30 |
4 files changed, 98 insertions, 16 deletions
diff --git a/public/assets/js/lib/HeaderView.js b/public/assets/js/lib/HeaderView.js new file mode 100644 index 0000000..b568ecb --- /dev/null +++ b/public/assets/js/lib/HeaderView.js @@ -0,0 +1,31 @@ +var HeaderView = View.extend({ + + el: "nav", + + events: { + "click .index": "toggleNav", + }, + + initialize: function(){ + this.$pageNumber = this.$(".page-no") + this.$slideNumber = this.$(".slide-no") + this.$slideCount = this.$(".slide-count") + }, + + updateSlideNumber: function(n){ + this.$slideNumber.html(n + 1) + }, + + updatePageNumber: function(n){ + this.$pageNumber.html(n + 1) + }, + + updateSlideCount: function(n){ + this.$slideCount.html(n) + }, + + toggleNav: function(){ + $('body').toggleClass('navopen'); + }, + +}) diff --git a/public/assets/js/lib/MenuView.js b/public/assets/js/lib/MenuView.js deleted file mode 100644 index 9576757..0000000 --- a/public/assets/js/lib/MenuView.js +++ /dev/null @@ -1,16 +0,0 @@ -var MenuView = View.extend({ - - el: ".menu", - - events: { - "click li": "click", - }, - - initialize: function(){ - }, - - click: function(e){ - var id = $(e.target).data("id") - // navigate to page - }, -})
\ No newline at end of file diff --git a/public/assets/js/lib/NavView.js b/public/assets/js/lib/NavView.js index 1edca02..0ed1d4f 100644 --- a/public/assets/js/lib/NavView.js +++ b/public/assets/js/lib/NavView.js @@ -1,5 +1,42 @@ var NavView = View.extend({ + el: ".menu", + events: { + "click li": "click", + }, + + initialize: function(){ + }, + + click: function(e){ + var id = $(e.target).data("id") + var view = app.lookup[ id ] + this.swap( view ) + }, + + previous: function(){ + var index = Math.max( app.view.page_number - 1, 0 ) + var view = app.projects[ index ] + this.swap( view ) + }, + + next: function(){ + var index = Math.min( app.view.page_number + 1, app.projects.length - 1 ) + var view = app.projects[ index ] + this.swap( view ) + }, + + swap: function(view) { + if (! view || app.view == view || app.view.showing) { + return + } + + console.log(view.page_number, view.project_id) + app.view.hide() + view.show() + app.view = view + }, + })
\ No newline at end of file diff --git a/public/assets/js/lib/ProjectView.js b/public/assets/js/lib/ProjectView.js index f5e47bd..02d7d4e 100644 --- a/public/assets/js/lib/ProjectView.js +++ b/public/assets/js/lib/ProjectView.js @@ -1,17 +1,47 @@ var ProjectView = View.extend({ events: { + "click": "next", + "click .page-up": "previous", + "click .page-down": "next", }, initialize: function(opt){ this.gallery = new GalleryView () this.project_id = this.$el.data("id") + this.page_number = opt.page_number + console.log("INIT", this.project_id) + $("<div>").addClass("page-up").insertBefore( this.$(".flickity-viewport") ) + $("<div>").addClass("page-down").insertAfter( this.$(".flickity-viewport") ) }, show: function(){ + app.header.updatePageNumber( this.page_number ) + app.header.updateSlideNumber( 0 ) + app.header.updateSlideCount( 1 ) + $('body').removeClass('navopen') + this.$el.removeClass("hidden") + + this.showing = true + addClassForPeriod( this.el, "showing", 200, function(){ + this.showing = false + }.bind(this) ) }, hide: function(){ + addClassForPeriod( this.el, "hiding", 200, function(){ + this.$el.addClass("hidden") + }.bind(this) ) + }, + + previous: function(e){ + e.stopPropagation() + app.nav.previous() + }, + + next: function(e){ + e.stopPropagation() + app.nav.next() }, }) |
