You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							57 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
	
	
							57 lines
						
					
					
						
							1.5 KiB
						
					
					
				var index = (function (element, listener) { | 
						|
	var expand = document.createElement('_'); | 
						|
	var shrink = expand.appendChild(document.createElement('_')); | 
						|
	var expandChild = expand.appendChild(document.createElement('_')); | 
						|
	var shrinkChild = shrink.appendChild(document.createElement('_')); | 
						|
 | 
						|
	var lastWidth = void 0, | 
						|
	    lastHeight = void 0; | 
						|
 | 
						|
	shrink.style.cssText = expand.style.cssText = 'height:100%;left:0;opacity:0;overflow:hidden;pointer-events:none;position:absolute;top:0;transition:0s;width:100%;z-index:-1'; | 
						|
	shrinkChild.style.cssText = expandChild.style.cssText = 'display:block;height:100%;transition:0s;width:100%'; | 
						|
	shrinkChild.style.width = shrinkChild.style.height = '200%'; | 
						|
 | 
						|
	element.appendChild(expand); | 
						|
 | 
						|
	test(); | 
						|
 | 
						|
	return stop; | 
						|
 | 
						|
	function test() { | 
						|
		unbind(); | 
						|
 | 
						|
		var width = element.offsetWidth; | 
						|
		var height = element.offsetHeight; | 
						|
 | 
						|
		if (width !== lastWidth || height !== lastHeight) { | 
						|
			lastWidth = width; | 
						|
			lastHeight = height; | 
						|
 | 
						|
			expandChild.style.width = width * 2 + 'px'; | 
						|
			expandChild.style.height = height * 2 + 'px'; | 
						|
 | 
						|
			expand.scrollLeft = expand.scrollWidth; | 
						|
			expand.scrollTop = expand.scrollHeight; | 
						|
			shrink.scrollLeft = shrink.scrollWidth; | 
						|
			shrink.scrollTop = shrink.scrollHeight; | 
						|
 | 
						|
			listener({ width: width, height: height }); | 
						|
		} | 
						|
 | 
						|
		shrink.addEventListener('scroll', test); | 
						|
		expand.addEventListener('scroll', test); | 
						|
	} | 
						|
 | 
						|
	function unbind() { | 
						|
		shrink.removeEventListener('scroll', test); | 
						|
		expand.removeEventListener('scroll', test); | 
						|
	} | 
						|
 | 
						|
	function stop() { | 
						|
		unbind(); | 
						|
 | 
						|
		element.removeChild(expand); | 
						|
	} | 
						|
}); | 
						|
 | 
						|
module.exports = index;
 | 
						|
 |