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.
60 lines
1.5 KiB
60 lines
1.5 KiB
1 year ago
|
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();
|