1function smoothScroll(eID) { 2 var scrollspeed = 75; 3 var startY = currentYPosition(); 4 var stopY = elmYPosition(eID); 5 var distance = stopY > startY ? stopY - startY : startY - stopY; 6 if (distance < 100) { 7 scrollTo(0, stopY); return; 8 } 9 var speed = Math.round(distance / 100); 10 if (speed >= 20) speed = 20; 11 var step = Math.round(distance / scrollspeed); 12 var leapY = stopY > startY ? startY + step : startY - step; 13 var timer = 0; 14 if (stopY > startY) { 15 for ( var i=startY; i<stopY; i+=step ) { 16 setTimeout("window.scrollTo(0, "+leapY+")", timer * speed); 17 leapY += step; if (leapY > stopY) leapY = stopY; timer++; 18 } return; 19 } 20 for ( var i=startY; i>stopY; i-=step ) { 21 setTimeout("window.scrollTo(0, "+leapY+")", timer * speed); 22 leapY -= step; if (leapY < stopY) leapY = stopY; timer++; 23 } 24} 25 26function currentYPosition() { 27 // Firefox, Chrome, Opera, Safari 28 if (self.pageYOffset) return self.pageYOffset; 29 // Internet Explorer 6 - standards mode 30 if (document.documentElement && document.documentElement.scrollTop) 31 return document.documentElement.scrollTop; 32 // Internet Explorer 6, 7 and 8 33 if (document.body.scrollTop) return document.body.scrollTop; 34 return 0; 35} 36 37function elmYPosition(eID) { 38 var elm = document.getElementById(eID); 39 var y = elm.offsetTop; 40 var node = elm; 41 while (node.offsetParent && node.offsetParent != document.body) { 42 node = node.offsetParent; 43 y += node.offsetTop; 44 } return y; 45}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.