diff --git a/clusterize.js b/clusterize.js index 5d87454..037c0b9 100644 --- a/clusterize.js +++ b/clusterize.js @@ -1,4 +1,4 @@ -/*! Clusterize.js - v0.8.3 - 2015-07-30 +/*! Clusterize.js - v0.9.0 - 2015-07-30 * http://NeXTs.github.com/Clusterize.js/ * Copyright (c) 2015 Denis Lukov; Licensed MIT */ @@ -108,6 +108,11 @@ ? new_rows : []; var scroll_top = self.scroll_elem.scrollTop; + // fixes #39 + if(rows.length * self.options.item_height < scroll_top) { + self.scroll_elem.scrollTop = 0; + last_cluster = 0; + } self.insertToDOM(rows, cache); self.scroll_elem.scrollTop = scroll_top; } diff --git a/clusterize.min.js b/clusterize.min.js index 5bc9a5f..1daa032 100644 --- a/clusterize.min.js +++ b/clusterize.min.js @@ -1,14 +1,14 @@ -/*! Clusterize.js - v0.8.3 - 2015-07-30 +/*! Clusterize.js - v0.9.0 - 2015-07-30 * http://NeXTs.github.com/Clusterize.js/ * Copyright (c) 2015 Denis Lukov; Licensed MIT */ ;(function(n,l){"undefined"!=typeof module?module.exports=l():"function"==typeof define&&"object"==typeof define.amd?define(l):this[n]=l()})("Clusterize",function(){function n(b,a,c){return a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent("on"+b,c)}function l(b,a,c){return a.removeEventListener?a.removeEventListener(b,c,!1):a.detachEvent("on"+b,c)}function p(b){return"[object Array]"===Object.prototype.toString.call(b)}var g=function(){for(var b=3,a=document.createElement("b"),c=a.all|| [];a.innerHTML="\x3c!--[if gt IE "+ ++b+"]>=g&&!a.tag&&(a.tag=b[0].split("<")[1].split(" ")[0].split(">")[0].toLowerCase()); -if(1>=this.content_elem.children.length||!a.tag){this.html(b[0]+b[0]+b[0]);var c=this.content_elem.children[1];a.tag||(a.tag=c.tagName.toLowerCase())}this.getRowsHeight(b)}},getRowsHeight:function(b){var a=this.options,c=a.item_height;a.cluster_height=0;if(b.length)return b=this.content_elem.children,a.item_height=b[Math.ceil(b.length/2)].offsetHeight,a.block_height=a.item_height*a.rows_in_block,a.rows_in_cluster=a.blocks_in_cluster*a.rows_in_block,a.cluster_height=a.blocks_in_cluster*a.block_height, -c!=a.item_height},getClusterNum:function(){var b=this.options;return Math.floor(this.scroll_elem.scrollTop/(b.cluster_height-b.block_height))},generateEmptyRow:function(){var b=this.options;if(!b.tag||!b.show_no_data_row)return[];var a=document.createElement(b.tag),c=document.createTextNode(b.no_data_text),d;a.className=b.no_data_class;"tr"==b.tag&&(d=document.createElement("td"),d.appendChild(c));a.appendChild(d||c);return[a.outerHTML]},generate:function(b,a){var c=this.options,d=b.length;if(d=g&&"tr"==this.options.tag){var c=document.createElement("div");for(c.innerHTML= -""+b+"
";b=a.lastChild;)a.removeChild(b);for(c=this.getChildNodes(c.firstChild.firstChild);c.length;)a.appendChild(c.shift())}else a.innerHTML=b},getChildNodes:function(b){b=b.children;for(var a=[],c=0,d=b.length;c=g&&!a.tag&&(a.tag=b[0].split("<")[1].split(" ")[0].split(">")[0].toLowerCase());if(1>=this.content_elem.children.length||!a.tag){this.html(b[0]+b[0]+b[0]);var c=this.content_elem.children[1];a.tag||(a.tag=c.tagName.toLowerCase())}this.getRowsHeight(b)}},getRowsHeight:function(b){var a=this.options,c=a.item_height;a.cluster_height=0;if(b.length)return b=this.content_elem.children,a.item_height=b[Math.ceil(b.length/2)].offsetHeight,a.block_height=a.item_height*a.rows_in_block,a.rows_in_cluster= +a.blocks_in_cluster*a.rows_in_block,a.cluster_height=a.blocks_in_cluster*a.block_height,c!=a.item_height},getClusterNum:function(){var b=this.options;return Math.floor(this.scroll_elem.scrollTop/(b.cluster_height-b.block_height))},generateEmptyRow:function(){var b=this.options;if(!b.tag||!b.show_no_data_row)return[];var a=document.createElement(b.tag),c=document.createTextNode(b.no_data_text),d;a.className=b.no_data_class;"tr"==b.tag&&(d=document.createElement("td"),d.appendChild(c));a.appendChild(d|| +c);return[a.outerHTML]},generate:function(b,a){var c=this.options,d=b.length;if(d=g&&"tr"==this.options.tag){var c=document.createElement("div");for(c.innerHTML=""+b+"
";b=a.lastChild;)a.removeChild(b);for(c=this.getChildNodes(c.firstChild.firstChild);c.length;)a.appendChild(c.shift())}else a.innerHTML=b},getChildNodes:function(b){b=b.children;for(var a=[],c=0,d=b.length;c