avoid scrollbar due to incremental search + subsequent filter
This commit is contained in:
		
							parent
							
								
									2c674bdc0c
								
							
						
					
					
						commit
						2a6850c02e
					
				|  | @ -15,10 +15,11 @@ onDOMready().then(() => { | |||
|     position: 'absolute', | ||||
|     color: 'transparent', | ||||
|     border: '1px solid hsla(180, 100%, 100%, .5)', | ||||
|     top: '-1000px', | ||||
|     margin: '-1px -2px', | ||||
|     overflow: 'hidden', | ||||
|     resize: 'none', | ||||
|     'background-color': 'hsla(180, 100%, 100%, .2)', | ||||
|     'box-sizing': 'content-box', | ||||
|     'pointer-events': 'none', | ||||
|   }); | ||||
|   document.body.appendChild(input); | ||||
|  | @ -48,6 +49,7 @@ onDOMready().then(() => { | |||
|     } | ||||
|     let found; | ||||
|     for (const entry of rotated || entries) { | ||||
|       if (entry.classList.contains('hidden')) continue; | ||||
|       const name = entry.styleNameLowerCase; | ||||
|       const pos = name.indexOf(text); | ||||
|       if (pos === 0) { | ||||
|  | @ -67,7 +69,11 @@ onDOMready().then(() => { | |||
|       focusedName = found.styleNameLowerCase; | ||||
|       scrollElementIntoView(found, {invalidMarginRatio: .25}); | ||||
|       animateElement(found, {className: 'highlight-quick'}); | ||||
|       resizeTo(focusedLink); | ||||
|       replaceInlineStyle({ | ||||
|         width: focusedLink.offsetWidth + 'px', | ||||
|         height: focusedLink.offsetHeight + 'px', | ||||
|       }); | ||||
|       focusedLink.prepend(input); | ||||
|       return true; | ||||
|     } | ||||
|   } | ||||
|  | @ -111,17 +117,6 @@ onDOMready().then(() => { | |||
|     } | ||||
|   } | ||||
| 
 | ||||
|   function resizeTo(el) { | ||||
|     const bounds = el.getBoundingClientRect(); | ||||
|     const base = document.scrollingElement; | ||||
|     replaceInlineStyle({ | ||||
|       left: bounds.left - 2 + base.scrollLeft + 'px', | ||||
|       top: bounds.top - 1 + base.scrollTop + 'px', | ||||
|       width: bounds.width + 4 + 'px', | ||||
|       height: bounds.height + 2 + 'px', | ||||
|     }); | ||||
|   } | ||||
| 
 | ||||
|   function replaceInlineStyle(css) { | ||||
|     for (const prop in css) { | ||||
|       input.style.setProperty(prop, css[prop], 'important'); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user