]> git.ipfire.org Git - thirdparty/foundation/foundation-sites.git/commitdiff
Call resize() only if the media-query has changed 4538/head
authorMartin Georgiev <martin@martingeorgiev.eu>
Tue, 25 Feb 2014 11:59:59 +0000 (13:59 +0200)
committerMartin Georgiev <martin@martingeorgiev.eu>
Tue, 25 Feb 2014 11:59:59 +0000 (13:59 +0200)
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.

js/foundation/foundation.interchange.js

index ca8697ccc66600cb22187c62fb5ecb50efdeaedd..a732e15a32df63ff10e1358bb107b50f20bb0be8 100644 (file)
       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;