Skip to content

Commit

Permalink
without scrolling anchors are useless
Browse files Browse the repository at this point in the history
  • Loading branch information
ceki committed Jul 11, 2012
1 parent d8eb296 commit 2e49281
Showing 1 changed file with 30 additions and 6 deletions.
36 changes: 30 additions & 6 deletions slf4j-site/src/site/pages/js/decorator.js
Expand Up @@ -4,12 +4,26 @@
// class="anchor"/></a>Logger context</h3>

function decorate() {
decoratePropertiesInTables();
decorateDoAnchor();
var anchor = findAnchorInURL(document.URL);
decoratePropertiesInTables(anchor);
decorateDoAnchor(anchor);
decorateConversionWordInTables();
}

function decoratePropertiesInTables() {
// ----------------------------------------------
function findAnchorInURL(url) {

if(url == null) return null
var index = url.lastIndexOf("#");
if(index != -1 && (index+1) < url.length)
return url.substr(index+1);
else
return null;
}

// ----------------------------------------------
function decoratePropertiesInTables(anchor) {

//if(1==1) return;
var elems = $('tr td:first-child span.prop');

Expand All @@ -21,17 +35,18 @@ function decoratePropertiesInTables() {
var tmpHTML = p.innerHTML;
var propName = e.innerHTML;
var nameAttr = $(e).attr('name')

if(nameAttr == null) {
var containerAttr = $(e).attr('container')
if(containerAttr != null)
nameAttr = containerAttr+capitaliseFirstLetter(propName);
else
nameAttr = propName;
}

p.innerHTML = "<a name='" + nameAttr + "' href='#" + nameAttr +
"'><span class='anchor'/></a><b>" +tmpHTML +"</b>";
scrollIfMatch(p, nameAttr, anchor);
} // for
}

Expand All @@ -45,11 +60,12 @@ function decorateConversionWordInTables() {
continue;
e.innerHTML = "<a name='" + nameAttr + "' href='#" + nameAttr +
"'><span class='anchor'/></a>" +tmpHTML;
scrollIfMatch(e, nameAttr, anchor);
}
}


function decorateDoAnchor() {
function decorateDoAnchor(anchor) {
var elems = $('.doAnchor');
for(var i = 0; i < elems.length; i++) {
var e = elems[i];
Expand All @@ -60,9 +76,17 @@ function decorateDoAnchor() {
}
e.innerHTML = "<a name='" + nameAttr + "' href='#" + nameAttr +
"'><span class='anchor'/></a>" +tmpHTML;
scrollIfMatch(e, nameAttr, anchor);
}
}

function scrollIfMatch(element, nameAttr, anchor) {
if(anchor != null && nameAttr.toString() == anchor)
element.scrollIntoView(true);


}

function capitaliseFirstLetter(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
}
Expand Down

0 comments on commit 2e49281

Please sign in to comment.