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.
		
		
		
		
			
				
					58 lines
				
				1.5 KiB
			
		
		
			
		
	
	
					58 lines
				
				1.5 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								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;
							 |