-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmrf.js
More file actions
49 lines (40 loc) · 1.91 KB
/
Copy pathmrf.js
File metadata and controls
49 lines (40 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// JavaScript source code
$(function () {
$(".collapse-group").each(function (index) {
var group = $(this);
var sidebar = group.find(".sidebar").first();
var mainContainer = group.find("main .container-fluid").first();
if (!sidebar.length || !mainContainer.length || mainContainer.find(".mrf-mobile-tools").length) {
return;
}
sidebar.attr("aria-label", "Page contents");
var navList = sidebar.children("ul.nav").first().clone();
if (!navList.length) {
return;
}
var collapseId = "mrf-mobile-contents-" + index;
var mobileTools = $('<div class="d-sm-none mrf-mobile-tools"></div>');
var toggleButton = $(
'<button class="btn btn-outline-secondary btn-block" type="button" data-toggle="collapse" aria-expanded="false">Contents</button>'
);
toggleButton.attr("data-target", "#" + collapseId);
toggleButton.attr("aria-controls", collapseId);
mobileTools.append(toggleButton);
var mobileNavCollapse = $('<div class="collapse mrf-mobile-nav-collapse"></div>');
mobileNavCollapse.attr("id", collapseId);
var mobileNav = $('<nav class="mrf-mobile-nav bg-light" aria-label="Mobile page contents"></nav>');
mobileNav.append(navList);
mobileNavCollapse.append(mobileNav);
mobileTools.append(mobileNavCollapse);
mainContainer.prepend(mobileTools);
});
$(".open-button").on("click", function () {
$(this).closest(".collapse-group").find(".collapse").not(".mrf-mobile-nav-collapse").collapse("show");
});
$(".close-button").on("click", function () {
$(this).closest(".collapse-group").find(".collapse").not(".mrf-mobile-nav-collapse").collapse("hide");
});
$(document).on("click", ".mrf-mobile-nav a", function () {
$(this).closest(".mrf-mobile-nav-collapse").collapse("hide");
});
});