diff options
Diffstat (limited to 'templates/docs/default.js')
-rw-r--r-- | templates/docs/default.js | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/templates/docs/default.js b/templates/docs/default.js deleted file mode 100644 index 4be99c98e..000000000 --- a/templates/docs/default.js +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright 2012 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -$(document).ready(function() { - prettyPrint(); - preventParentScrolls('nav'); - - var sluggify_ = function(s) { - return (s || '').replace(/ /g, '-').replace(/[^\w-]/g, '').toLowerCase(); - }; - - $('h2, h3, h4.includetoc').each(function() { - $(this).attr('id', 'toc_' + sluggify_($(this).data('tocid') || $(this).data('toctitle') || $(this).text())); - $(this).click(function() { - smoothScrollToId($(this).attr('id')); - }); - }); - - var buildNav_ = function(queries, $contentRoot, $navRoot) { - if (!queries || !queries.length) { - return; - } - - $contentRoot.find(queries[0]).each(function() { - var $navNode = $('<div>') - .text($(this).html()) - .appendTo($navRoot); - buildNav_(queries.splice(1), $(this), $navNode); - }); - }; - - buildNav(); -}); - -function buildNav() { - var currentLevel = 2; - var $currentParent = $('nav'); - var $currentNode = null; - - $('#page-content').find('h2, h3, h4.includetoc').each(function() { - var level = $(this).get(0).tagName.substring(1); - - if (level < currentLevel) { - // ascend - for (var i = 0; i < (currentLevel - level); i++) { - $currentParent = $currentParent.parents('div.children, nav').first(); - } - - } else if (level > currentLevel) { - // descend - $currentParent = $('<div>') - .addClass('children') - .appendTo($currentNode); - } - - var tocId = $(this).attr('id'); - var navId = tocId.replace(/toc_/, 'nav_'); - - $interactionNode = $('<span>') - .html($(this).data('toctitle') || $(this).html()) - .data('target', tocId) - .click(function() { - smoothScrollToId($(this).data('target')); - }); - - $currentNode = $('<div>') - .attr('id', navId) - .addClass('item') - .append($interactionNode) - .appendTo($currentParent); - - currentLevel = level; - }); - - var headerPositionCache = []; - var rebuildHeaderPositionCache_ = function() { - headerPositionCache = []; - $('#page-content').find('h2, h3, h4.includetoc').each(function() { - headerPositionCache.push({ - id: $(this).attr('id').replace(/toc_/, 'nav_'), - top: $(this).offset().top - }); - }); - }; - - var updateSelectedNavPosition_ = function() { - $('nav .item').removeClass('selected'); - var scrollTop = $(window).scrollTop(); - for (var i = headerPositionCache.length - 1; i >= 0; i--) { - if (scrollTop >= headerPositionCache[i].top) { - $('#' + headerPositionCache[i].id).addClass('selected'); - break; - } - } - }; - - rebuildHeaderPositionCache_(); - $(window).resize(function() { - rebuildHeaderPositionCache_(); - updateSelectedNavPosition_(); - }); - - $(window).scroll(function() { - updateSelectedNavPosition_(); - }); -} - -function smoothScrollToId(id) { - var $target = $('#' + id); - $('body').animate({ scrollTop: $target.offset().top }, 200, 'swing', function() { - document.location.hash = id; - }); -} - -// Based on http://stackoverflow.com/questions/5802467/prevent-scrolling-of-parent-element -function preventParentScrolls($el) { - $($el).on('DOMMouseScroll mousewheel', function(ev) { - var $this = $(this), - scrollTop = this.scrollTop, - scrollHeight = this.scrollHeight, - height = $this.height(), - delta = (ev.type == 'DOMMouseScroll' ? - ev.originalEvent.detail * -40 : - ev.originalEvent.wheelDelta), - up = delta > 0; - - if (!up && -delta > scrollHeight - height - scrollTop) { - // Scrolling down, but this will take us past the bottom. - $this.scrollTop(scrollHeight); - } else if (up && delta > scrollTop) { - // Scrolling up, but this will take us past the top. - $this.scrollTop(0); - } else { - $this.scrollTop(scrollTop - delta); - } - - ev.stopPropagation(); - ev.preventDefault(); - ev.returnValue = false; - return false; - }); -}
\ No newline at end of file |