From 3ab162e71cbe88ec4d2207c39b9f3d2d7f4c965c Mon Sep 17 00:00:00 2001 From: Scott Main Date: Fri, 4 Mar 2011 12:23:00 -0800 Subject: [PATCH] docs: script update to account for double-nested list items when scrolling sidenav into view Change-Id: I03668f9ecb7da03a7921a0d7eacd2dcaa0a1ba54 --- .../assets/android-developer-docs.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/tools/droiddoc/templates-sdk/assets/android-developer-docs.js b/tools/droiddoc/templates-sdk/assets/android-developer-docs.js index 97b831a58f..728e015adb 100644 --- a/tools/droiddoc/templates-sdk/assets/android-developer-docs.js +++ b/tools/droiddoc/templates-sdk/assets/android-developer-docs.js @@ -502,14 +502,25 @@ function scrollIntoView(nav) { if (navObj.is(':visible')) { var selected = $(".selected", navObj); if (selected.length == 0) return; - if (selected.is("div")) selected = selected.parent(); + if (selected.is("div")) selected = selected.parent(); // when the selected item is a parent var scrolling = document.getElementById(nav); var navHeight = navObj.height(); var offsetTop = selected.position().top; - if (selected.parent().parent().is(".toggle-list")) offsetTop += selected.parent().parent().position().top; - if(offsetTop > navHeight - 92) { - scrolling.scrollTop = offsetTop - navHeight + 92; + + // handle nested items + if (selected.parent().parent().is(".toggle-list")) { + selected = selected.parent().parent(); + // handle second level nested items + if (selected.parent().parent().is(".toggle-list")) { + selected = selected.parent().parent(); + } + offsetTop += selected.position().top; + } + + // 180px from the bottom of the list is the threshold + if(offsetTop > navHeight - 180) { + scrolling.scrollTop = offsetTop - navHeight + 180; } } }