Difference between revisions of "Team:OUC-China/js/jquery.tocible.min"

(Created page with "/* * jquery.tocible.min.js v1.2.0, jQuery Tocible * * Under MIT license, available at http://www.opensource.org/licenses/MIT. * * A lightweight table of contents navigati...")
 
(Blanked the page)
 
Line 1: Line 1:
/*
 
* jquery.tocible.min.js v1.2.0, jQuery Tocible
 
*
 
* Under MIT license, available at http://www.opensource.org/licenses/MIT.
 
*
 
* A lightweight table of contents navigation plugin
 
* https://github.com/markserbol/tocible
 
*
 
*/
 
  
(function(a) {
 
var k = {
 
heading: "h2",
 
subheading: "h3",
 
reference: ".ref",
 
title: "",
 
hash: !1,
 
offsetTop: 50,
 
speed: 800,
 
collapsible: !0,
 
maxWidth: 150
 
};
 
a.fn.tocible = function(m) {
 
var d = a.extend({}, k, m);
 
return this.each(function() {
 
var b = a(this),
 
e, f, g, h, l;
 
b.find(".tocible").remove();
 
f = b.find(d.reference);
 
f.css({
 
visibility: "hidden"
 
});
 
l = f.offset().left;
 
e = a("<div/>", {
 
"class": "tocible",
 
html: "<ul/>"
 
});
 
e.css({
 
"max-width": d.maxWidth
 
});
 
b.append(e).css({
 
position: "relative"
 
});
 
if (d.title) {
 
var k = a(d.title).length ? a(d.title).text() : d.title;
 
a("<div/>", {
 
"class": "tocible_header",
 
html: k + "<span/>"
 
}).prependTo(e).click(function() {
 
a(this).siblings("ul").slideToggle({
 
duration: "slow",
 
step: contain
 
});
 
a(this).find("span").toggleClass("toc_open")
 
})
 
}
 
g = b.find(d.heading);
 
h = b.find(d.subheading);
 
g.add(h).each(function() {
 
var c = a(this),
 
e, b, f;
 
e = c.attr("id") ? "#" + c.attr("id") : "#";
 
b = c.text();
 
c.is(g) ? f = "heading" : c.is(h) && (f = "subheading");
 
b = a("<a/>", {
 
text: b,
 
href: e
 
});
 
a("<li/>", {
 
"class": "tocible_" + f
 
}).append(b).appendTo(".tocible > ul");
 
b.click(function(b) {
 
b.preventDefault();
 
b = c.offset();
 
if (d.hash) {
 
var f = a(window).scrollTop();
 
history.pushState ? history.pushState({}, document.title, e) : (window.location.hash = e, a(window).scrollTop(f))
 
}
 
a("html, body").stop(!0).animate({
 
scrollTop: b.top - 10 - 83
 
}, d.speed)
 
})
 
});
 
contain = function() {
 
var c = a(window).scrollTop(),
 
g = b.offset().top;
 
e.css({
 
top: d.offsetTop + 10,
 
bottom: "auto",
 
left: l
 
});
 
g + b.outerHeight() <= c + e.height() + d.offsetTop ? e.css({
 
position: "absolute",
 
bottom: 0,
 
top: "auto",
 
left: f.position().left
 
}) : c >= g ? e.css({
 
position: "fixed",
 
bottom: "auto",
 
top: d.offsetTop + 80,
 
left: f.offset().left - 170
 
}) : e.css({
 
position: "absolute",
 
left: f.position().left - 170
 
})
 
};
 
onScroll = function() {
 
d.collapsible && a(".tocible li.tocible_subheading").hide();
 
g.add(h).each(function(c) {
 
var b = a(this).offset().top;
 
c = a(".tocible li").eq(c);
 
a(window).scrollTop() >= b - 20 ? (c.addClass("toc_scrolled").siblings().removeClass("toc_scrolled"), d.collapsible && (c.siblings().filter(".tocible_subheading").hide(), c.is(".tocible_subheading") ? c.prevAll(".tocible_heading:first").nextUntil(".tocible_heading").show() : c.is(".tocible_heading") && c.nextUntil(".tocible_heading").show())) : c.removeClass("toc_scrolled")
 
})
 
};
 
a(window).on("resize scroll", function(a) {
 
contain();
 
onScroll()
 
}).trigger("scroll")
 
})
 
}
 
})(jQuery);
 

Latest revision as of 05:17, 16 September 2015