From: Martin Georgiev Date: Tue, 25 Feb 2014 11:59:59 +0000 (+0200) Subject: Call resize() only if the media-query has changed X-Git-Tag: v5.2.0~40^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F4538%2Fhead;p=thirdparty%2Ffoundation%2Ffoundation-sites.git Call resize() only if the media-query has changed Currently the interchangeable content is reloaded every 50ms during window resize, if one has facebook, twitter or GMaps widgets as interchangeable content, things get nasty :) With this change content is reloaded only when the media-query changes. --- diff --git a/js/foundation/foundation.interchange.js b/js/foundation/foundation.interchange.js index ca8697ccc..a732e15a3 100644 --- a/js/foundation/foundation.interchange.js +++ b/js/foundation/foundation.interchange.js @@ -78,13 +78,25 @@ this.load('nodes'); }, + getMediaHash : function() { + var mediaHash=''; + for (var queryName in this.settings.named_queries ) { + mediaHash += matchMedia(this.settings.named_queries[queryName]).matches.toString(); + } + return mediaHash; + }, + events : function () { - var self = this; + var self = this, prevMediaHash; $(window) .off('.interchange') .on('resize.fndtn.interchange', self.throttle(function () { - self.resize(); + var currMediaHash = self.getMediaHash(); + if (currMediaHash !== prevMediaHash) { + self.resize(); + } + prevMediaHash = currMediaHash; }, 50)); return this;