diff options
Diffstat (limited to 'public/assets/js/nav.js')
| -rw-r--r-- | public/assets/js/nav.js | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/public/assets/js/nav.js b/public/assets/js/nav.js new file mode 100644 index 0000000..401c6ff --- /dev/null +++ b/public/assets/js/nav.js @@ -0,0 +1,65 @@ +var NavView = View.extend({ + + el: "body", + events: { + "click #prev": "prev", + "click #next": "next", + "click #refresh": "refresh", + "click #random": "random", + }, + + initialize: function(){ + this.id = -1 + this.$pip = this.$("#pip img") + this.$image = this.$("#luckyimage") + + $(window).on("keydown", app.keydown) + this.latest() + }, + + keydown: function(e){ + switch (e.keyCode) { + case 37: // left + this.prev() + break + case 39: // right + this.next() + break + case 38: // up + this.latest() + break + case 40: // down + this.random() + break + } + }, + + latest: function(){ + this.onLatest = true + $.get("/get/latest", this.display.bind(this)) + }, + + prev: function(){ + if (this.id - 1 < 1) { return } + this.onLatest = false + $.get("/get/" + (this.id-1), this.display.bind(this)) + }, + + next: function(){ + if (this.onLatest || this.id < 1) { return } + this.onLatest = false + $.get("/get/" + (this.id+1), this.display.bind(this)) + }, + + random: function(){ + this.onLatest = false + $.get("/get/random", this.display.bind(this)) + }, + + display: function(data){ + this.id = data.id + this.$pip.attr("src", data.url) + this.$image.css("background-image", "url(" + data.url + ")") + }, + +}) |
