diff --git a/lib/scripts/linkwiz.js b/lib/scripts/linkwiz.js index 01deb2234e57f13f0523846ce2bfb4fa6d4beb46..ce4b6b1015e1c9c2f9b5b083f9701a5e8b28ec66 100644 --- a/lib/scripts/linkwiz.js +++ b/lib/scripts/linkwiz.js @@ -119,6 +119,20 @@ linkwiz = { if(obj){ linkwiz.deselect(); obj.className += ' selected'; + + // make sure the item is viewable in the scroll view + // FIXME check IE compatibility + if(obj.offsetTop > linkwiz.result.scrollTop + linkwiz.result.clientHeight){ + linkwiz.result.scrollTop += obj.clientHeight; + }else if(obj.offsetTop - linkwiz.result.clientHeight < linkwiz.result.scrollTop){ // this works but isn't quite right, fixes welcome + linkwiz.result.scrollTop -= obj.clientHeight; + } + // now recheck - if still not in view, the user used the mouse to scroll + if( (obj.offsetTop > linkwiz.result.scrollTop + linkwiz.result.clientHeight) || + (obj.offsetTop < linkwiz.result.scrollTop) ){ + obj.scrollIntoView(); + } + linkwiz.selected = num; } },