You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.5 KiB
59 lines
1.5 KiB
function $() { |
|
return document.querySelector.apply(document, arguments); |
|
} |
|
|
|
if (navigator.userAgent.indexOf("Xcode") != -1) { |
|
document.documentElement.classList.add("xcode"); |
|
} |
|
|
|
var jumpTo = $("#jump-to"); |
|
|
|
if (jumpTo) { |
|
jumpTo.addEventListener("change", function(e) { |
|
location.hash = this.options[this.selectedIndex].value; |
|
}); |
|
} |
|
|
|
function hashChanged() { |
|
if (/^#\/\/api\//.test(location.hash)) { |
|
var element = document.querySelector("a[name='" + location.hash.substring(1) + "']"); |
|
|
|
if (!element) { |
|
return; |
|
} |
|
|
|
element = element.parentNode; |
|
|
|
element.classList.remove("hide"); |
|
fixScrollPosition(element); |
|
} |
|
} |
|
|
|
function fixScrollPosition(element) { |
|
var scrollTop = element.offsetTop - 150; |
|
document.documentElement.scrollTop = scrollTop; |
|
document.body.scrollTop = scrollTop; |
|
} |
|
|
|
[].forEach.call(document.querySelectorAll(".section-method"), function(element) { |
|
element.classList.add("hide"); |
|
|
|
element.querySelector(".method-title a").addEventListener("click", function(e) { |
|
var info = element.querySelector(".method-info"), |
|
infoContainer = element.querySelector(".method-info-container"); |
|
|
|
element.classList.add("animating"); |
|
info.style.height = (infoContainer.clientHeight + 40) + "px"; |
|
fixScrollPosition(element); |
|
element.classList.toggle("hide"); |
|
if (element.classList.contains("hide")) { |
|
e.preventDefault(); |
|
} |
|
setTimeout(function() { |
|
element.classList.remove("animating"); |
|
}, 300); |
|
}); |
|
}); |
|
|
|
window.addEventListener("hashchange", hashChanged); |
|
hashChanged();
|
|
|