From f2fd4f3095db8707c0cdf04f4307cf03a690f1b8 Mon Sep 17 00:00:00 2001 From: winkidney Date: Fri, 1 Mar 2019 17:21:59 +0800 Subject: [PATCH] Feature: Add resize listener --- pinry/static/js/vue/main.js | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/pinry/static/js/vue/main.js b/pinry/static/js/vue/main.js index f50dc47..5009b47 100644 --- a/pinry/static/js/vue/main.js +++ b/pinry/static/js/vue/main.js @@ -161,6 +161,7 @@ Vue.component('pin-container', { }, "pins": [], "heightTable": [], + "counter": 0, }; }, template: "#pin-container-template", @@ -177,7 +178,9 @@ Vue.component('pin-container', { ); }, ); - window.addEventListener("resize", this.reflow, {}) + window.addEventListener("optimizedResize", function() { + self.reflow(); + }); }, mounted: function() { this.reflow(); @@ -208,6 +211,23 @@ Vue.component('pin-container', { }, }); +(function() { + var throttle = function(type, name, obj) { + obj = obj || window; + var running = false; + var func = function() { + if (running) { return; } + running = true; + requestAnimationFrame(function() { + obj.dispatchEvent(new CustomEvent(name)); + running = false; + }); + }; + obj.addEventListener(type, func); + }; + + throttle("resize", "optimizedResize"); +})(); var app = new Vue({ el: '#app',