From f6413dfc67d82986fa1990187976b785eda26670 Mon Sep 17 00:00:00 2001 From: Taber Buhl Date: Mon, 30 Jan 2017 11:17:44 -0500 Subject: [PATCH] fixes resize event stutter on iOS devices --- jquery.ellipsis.js | 6 ++++++ jquery.ellipsis.min.js | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/jquery.ellipsis.js b/jquery.ellipsis.js index 781431f..13e6e19 100644 --- a/jquery.ellipsis.js +++ b/jquery.ellipsis.js @@ -210,6 +210,7 @@ // only bind to window resize if required if (base.opts.responsive) { + var windowWidth = $(window).width(); /** * resize() resets necessary vars @@ -217,6 +218,11 @@ * the Ellipsis script */ var resize = function() { + if ($(window).width() == windowWidth) { + return; + } + windowWidth = $(window).width(); + lines = []; currLine = 0; currOffset = null; diff --git a/jquery.ellipsis.min.js b/jquery.ellipsis.min.js index 2836c2e..b92d262 100644 --- a/jquery.ellipsis.min.js +++ b/jquery.ellipsis.min.js @@ -10,4 +10,4 @@ * adds a class to the last 'allowed' line of text so you can apply * text-overflow: ellipsis; */ -(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(d){var c="ellipsis",b='',e={lines:"auto",ellipClass:"ellip",responsive:false};function a(h,q){var m=this,w=0,g=[],k,p,i,f,j,n,s;m.$cont=d(h);m.opts=d.extend({},e,q);function o(){m.text=m.$cont.text();m.opts.ellipLineClass=m.opts.ellipClass+"-line";m.$el=d('');m.$el.text(m.text);m.$cont.empty().append(m.$el);t()}function t(){if(typeof m.opts.lines==="number"&&m.opts.lines<2){m.$el.addClass(m.opts.ellipLineClass);return}n=m.$cont.height();if(m.opts.lines==="auto"&&m.$el.prop("scrollHeight")<=n){return}if(!k){return}s=d.trim(m.text).split(/\s+/);m.$el.html(b+s.join(" "+b)+"");m.$el.find("span").each(k);if(p!=null){u(p)}}function u(x){s[x]=''+s[x];s.push("");m.$el.html(s.join(" "))}if(m.opts.lines==="auto"){var r=function(y,A){var x=d(A),z=x.position().top;j=j||x.height();if(z===f){g[w].push(x)}else{f=z;w+=1;g[w]=[x]}if(z+j>n){p=y-g[w-1].length;return false}};k=r}if(typeof m.opts.lines==="number"&&m.opts.lines>1){var l=function(y,A){var x=d(A),z=x.position().top;if(z!==f){f=z;w+=1}if(w===m.opts.lines){p=y;return false}};k=l}if(m.opts.responsive){var v=function(){g=[];w=0;f=null;p=null;m.$el.html(m.text);clearTimeout(i);i=setTimeout(t,100)};d(window).on("resize."+c,v)}o()}d.fn[c]=function(f){return this.each(function(){try{d(this).data(c,(new a(this,f)))}catch(g){if(window.console){console.error(c+": "+g)}}})}})); +(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(d){var c="ellipsis",b='',e={lines:"auto",ellipClass:"ellip",responsive:false};function a(h,q){var m=this,w=0,g=[],k,p,i,f,j,n,s;m.$cont=d(h);m.opts=d.extend({},e,q);function o(){m.text=m.$cont.text();m.opts.ellipLineClass=m.opts.ellipClass+"-line";m.$el=d('');m.$el.text(m.text);m.$cont.empty().append(m.$el);t()}function t(){if(typeof m.opts.lines==="number"&&m.opts.lines<2){m.$el.addClass(m.opts.ellipLineClass);return}n=m.$cont.height();if(m.opts.lines==="auto"&&m.$el.prop("scrollHeight")<=n){return}if(!k){return}s=d.trim(m.text).split(/\s+/);m.$el.html(b+s.join(" "+b)+"");m.$el.find("span").each(k);if(p!=null){u(p)}}function u(y){s[y]=''+s[y];s.push("");m.$el.html(s.join(" "))}if(m.opts.lines==="auto"){var r=function(z,B){var y=d(B),A=y.position().top;j=j||y.height();if(A===f){g[w].push(y)}else{f=A;w+=1;g[w]=[y]}if(A+j>n){p=z-g[w-1].length;return false}};k=r}if(typeof m.opts.lines==="number"&&m.opts.lines>1){var l=function(z,B){var y=d(B),A=y.position().top;if(A!==f){f=A;w+=1}if(w===m.opts.lines){p=z;return false}};k=l}if(m.opts.responsive){var x=d(window).width();var v=function(){if(d(window).width()==x){return}x=d(window).width();g=[];w=0;f=null;p=null;m.$el.html(m.text);clearTimeout(i);i=setTimeout(t,100)};d(window).on("resize."+c,v)}o()}d.fn[c]=function(f){return this.each(function(){try{d(this).data(c,(new a(this,f)))}catch(g){if(window.console){console.error(c+": "+g)}}})}})); \ No newline at end of file