move the sticky-kit^Cquery plugin to /lib and see if we want this for the whole app
This commit is contained in:
parent
b863447c2b
commit
b8370cffb9
290
doc/toc.html
290
doc/toc.html
@ -93,277 +93,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
|
||||||
// Generated by CoffeeScript 1.10.0
|
|
||||||
|
|
||||||
/**
|
|
||||||
@license Sticky-kit v1.1.3 | MIT | Leaf Corcoran 2015 | http://leafo.net
|
|
||||||
*/
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
var $, win;
|
|
||||||
|
|
||||||
$ = window.jQuery;
|
|
||||||
|
|
||||||
win = $(window);
|
|
||||||
|
|
||||||
$.fn.stick_in_parent = function(opts) {
|
|
||||||
var doc, elm, enable_bottoming, fn, i, inner_scrolling, len, manual_spacer, offset_top, outer_width, parent_selector, recalc_every, sticky_class;
|
|
||||||
if (opts == null) {
|
|
||||||
opts = {};
|
|
||||||
}
|
|
||||||
sticky_class = opts.sticky_class, inner_scrolling = opts.inner_scrolling, recalc_every = opts.recalc_every, parent_selector = opts.parent, offset_top = opts.offset_top, manual_spacer = opts.spacer, enable_bottoming = opts.bottoming;
|
|
||||||
if (offset_top == null) {
|
|
||||||
offset_top = 0;
|
|
||||||
}
|
|
||||||
if (parent_selector == null) {
|
|
||||||
parent_selector = void 0;
|
|
||||||
}
|
|
||||||
if (inner_scrolling == null) {
|
|
||||||
inner_scrolling = true;
|
|
||||||
}
|
|
||||||
if (sticky_class == null) {
|
|
||||||
sticky_class = "is_stuck";
|
|
||||||
}
|
|
||||||
doc = $(document);
|
|
||||||
if (enable_bottoming == null) {
|
|
||||||
enable_bottoming = true;
|
|
||||||
}
|
|
||||||
outer_width = function(el) {
|
|
||||||
var _el, computed, w;
|
|
||||||
if (window.getComputedStyle) {
|
|
||||||
_el = el[0];
|
|
||||||
computed = window.getComputedStyle(el[0]);
|
|
||||||
w = parseFloat(computed.getPropertyValue("width")) + parseFloat(computed.getPropertyValue("margin-left")) + parseFloat(computed.getPropertyValue("margin-right"));
|
|
||||||
if (computed.getPropertyValue("box-sizing") !== "border-box") {
|
|
||||||
w += parseFloat(computed.getPropertyValue("border-left-width")) + parseFloat(computed.getPropertyValue("border-right-width")) + parseFloat(computed.getPropertyValue("padding-left")) + parseFloat(computed.getPropertyValue("padding-right"));
|
|
||||||
}
|
|
||||||
return w;
|
|
||||||
} else {
|
|
||||||
return el.outerWidth(true);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
fn = function(elm, padding_bottom, parent_top, parent_height, top, height, el_float, detached) {
|
|
||||||
var bottomed, detach, fixed, last_pos, last_scroll_height, offset, parent, recalc, recalc_and_tick, recalc_counter, spacer, tick;
|
|
||||||
if (elm.data("sticky_kit")) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
elm.data("sticky_kit", true);
|
|
||||||
last_scroll_height = doc.height();
|
|
||||||
parent = elm.parent();
|
|
||||||
if (parent_selector != null) {
|
|
||||||
parent = parent.closest(parent_selector);
|
|
||||||
}
|
|
||||||
if (!parent.length) {
|
|
||||||
throw "failed to find stick parent";
|
|
||||||
}
|
|
||||||
fixed = false;
|
|
||||||
bottomed = false;
|
|
||||||
spacer = manual_spacer != null ? manual_spacer && elm.closest(manual_spacer) : $("<div />");
|
|
||||||
if (spacer) {
|
|
||||||
spacer.css('position', elm.css('position'));
|
|
||||||
}
|
|
||||||
recalc = function() {
|
|
||||||
var border_top, padding_top, restore;
|
|
||||||
if (detached) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
last_scroll_height = doc.height();
|
|
||||||
border_top = parseInt(parent.css("border-top-width"), 10);
|
|
||||||
padding_top = parseInt(parent.css("padding-top"), 10);
|
|
||||||
padding_bottom = parseInt(parent.css("padding-bottom"), 10);
|
|
||||||
parent_top = parent.offset().top + border_top + padding_top;
|
|
||||||
parent_height = parent.height();
|
|
||||||
if (fixed) {
|
|
||||||
fixed = false;
|
|
||||||
bottomed = false;
|
|
||||||
if (manual_spacer == null) {
|
|
||||||
elm.insertAfter(spacer);
|
|
||||||
spacer.detach();
|
|
||||||
}
|
|
||||||
elm.css({
|
|
||||||
position: "",
|
|
||||||
top: "",
|
|
||||||
width: "",
|
|
||||||
bottom: ""
|
|
||||||
}).removeClass(sticky_class);
|
|
||||||
restore = true;
|
|
||||||
}
|
|
||||||
top = elm.offset().top - (parseInt(elm.css("margin-top"), 10) || 0) - offset_top;
|
|
||||||
height = elm.outerHeight(true);
|
|
||||||
el_float = elm.css("float");
|
|
||||||
if (spacer) {
|
|
||||||
spacer.css({
|
|
||||||
width: outer_width(elm),
|
|
||||||
height: height,
|
|
||||||
display: elm.css("display"),
|
|
||||||
"vertical-align": elm.css("vertical-align"),
|
|
||||||
"float": el_float
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (restore) {
|
|
||||||
return tick();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
recalc();
|
|
||||||
if (height === parent_height) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
last_pos = void 0;
|
|
||||||
offset = offset_top;
|
|
||||||
recalc_counter = recalc_every;
|
|
||||||
tick = function() {
|
|
||||||
var css, delta, recalced, scroll, will_bottom, win_height;
|
|
||||||
if (detached) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
recalced = false;
|
|
||||||
if (recalc_counter != null) {
|
|
||||||
recalc_counter -= 1;
|
|
||||||
if (recalc_counter <= 0) {
|
|
||||||
recalc_counter = recalc_every;
|
|
||||||
recalc();
|
|
||||||
recalced = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!recalced && doc.height() !== last_scroll_height) {
|
|
||||||
recalc();
|
|
||||||
recalced = true;
|
|
||||||
}
|
|
||||||
scroll = win.scrollTop();
|
|
||||||
if (last_pos != null) {
|
|
||||||
delta = scroll - last_pos;
|
|
||||||
}
|
|
||||||
last_pos = scroll;
|
|
||||||
if (fixed) {
|
|
||||||
if (enable_bottoming) {
|
|
||||||
will_bottom = scroll + height + offset > parent_height + parent_top;
|
|
||||||
if (bottomed && !will_bottom) {
|
|
||||||
bottomed = false;
|
|
||||||
elm.css({
|
|
||||||
position: "fixed",
|
|
||||||
bottom: "",
|
|
||||||
top: offset
|
|
||||||
}).trigger("sticky_kit:unbottom");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (scroll < top) {
|
|
||||||
fixed = false;
|
|
||||||
offset = offset_top;
|
|
||||||
if (manual_spacer == null) {
|
|
||||||
if (el_float === "left" || el_float === "right") {
|
|
||||||
elm.insertAfter(spacer);
|
|
||||||
}
|
|
||||||
spacer.detach();
|
|
||||||
}
|
|
||||||
css = {
|
|
||||||
position: "",
|
|
||||||
width: "",
|
|
||||||
top: ""
|
|
||||||
};
|
|
||||||
elm.css(css).removeClass(sticky_class).trigger("sticky_kit:unstick");
|
|
||||||
}
|
|
||||||
if (inner_scrolling) {
|
|
||||||
win_height = win.height();
|
|
||||||
if (height + offset_top > win_height) {
|
|
||||||
if (!bottomed) {
|
|
||||||
offset -= delta;
|
|
||||||
offset = Math.max(win_height - height, offset);
|
|
||||||
offset = Math.min(offset_top, offset);
|
|
||||||
if (fixed) {
|
|
||||||
elm.css({
|
|
||||||
top: offset + "px"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (scroll > top) {
|
|
||||||
fixed = true;
|
|
||||||
css = {
|
|
||||||
position: "fixed",
|
|
||||||
top: offset
|
|
||||||
};
|
|
||||||
css.width = elm.css("box-sizing") === "border-box" ? elm.outerWidth() + "px" : elm.width() + "px";
|
|
||||||
elm.css(css).addClass(sticky_class);
|
|
||||||
if (manual_spacer == null) {
|
|
||||||
elm.after(spacer);
|
|
||||||
if (el_float === "left" || el_float === "right") {
|
|
||||||
spacer.append(elm);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elm.trigger("sticky_kit:stick");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (fixed && enable_bottoming) {
|
|
||||||
if (will_bottom == null) {
|
|
||||||
will_bottom = scroll + height + offset > parent_height + parent_top;
|
|
||||||
}
|
|
||||||
if (!bottomed && will_bottom) {
|
|
||||||
bottomed = true;
|
|
||||||
if (parent.css("position") === "static") {
|
|
||||||
parent.css({
|
|
||||||
position: "relative"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return elm.css({
|
|
||||||
position: "absolute",
|
|
||||||
bottom: padding_bottom,
|
|
||||||
top: "auto"
|
|
||||||
}).trigger("sticky_kit:bottom");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
recalc_and_tick = function() {
|
|
||||||
recalc();
|
|
||||||
return tick();
|
|
||||||
};
|
|
||||||
detach = function() {
|
|
||||||
detached = true;
|
|
||||||
win.off("touchmove", tick);
|
|
||||||
win.off("scroll", tick);
|
|
||||||
win.off("resize", recalc_and_tick);
|
|
||||||
$(document.body).off("sticky_kit:recalc", recalc_and_tick);
|
|
||||||
elm.off("sticky_kit:detach", detach);
|
|
||||||
elm.removeData("sticky_kit");
|
|
||||||
elm.css({
|
|
||||||
position: "",
|
|
||||||
bottom: "",
|
|
||||||
top: "",
|
|
||||||
width: ""
|
|
||||||
});
|
|
||||||
parent.position("position", "");
|
|
||||||
if (fixed) {
|
|
||||||
if (manual_spacer == null) {
|
|
||||||
if (el_float === "left" || el_float === "right") {
|
|
||||||
elm.insertAfter(spacer);
|
|
||||||
}
|
|
||||||
spacer.remove();
|
|
||||||
}
|
|
||||||
return elm.removeClass(sticky_class);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
win.on("touchmove", tick);
|
|
||||||
win.on("scroll", tick);
|
|
||||||
win.on("resize", recalc_and_tick);
|
|
||||||
$(document.body).on("sticky_kit:recalc", recalc_and_tick);
|
|
||||||
elm.on("sticky_kit:detach", detach);
|
|
||||||
return setTimeout(tick, 0);
|
|
||||||
};
|
|
||||||
for (i = 0, len = this.length; i < len; i++) {
|
|
||||||
elm = this[i];
|
|
||||||
fn($(elm));
|
|
||||||
}
|
|
||||||
return this;
|
|
||||||
};
|
|
||||||
|
|
||||||
}).call(this);
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
// Generate the table of contents in the side nav menu (see view/tpl/help.tpl)
|
// Generate the table of contents in the side nav menu (see view/tpl/help.tpl)
|
||||||
@ -386,25 +115,8 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$(".widget").stick_in_parent({
|
$(document.body).trigger("sticky_kit:recalc");
|
||||||
offset_top: $('nav').outerHeight(true)
|
|
||||||
});
|
|
||||||
|
|
||||||
$('#expand-aside').click(function() {
|
|
||||||
if($('main').hasClass('region_1-on')) {
|
|
||||||
$('body').css('overflow-x', 'hidden');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$('body').css('overflow-x', '');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$(window).scroll(function() {
|
|
||||||
if($('main').hasClass('region_1-on') && $(window).scrollLeft() > 5) {
|
|
||||||
$('#expand-aside-icon').toggleClass('fa-arrow-circle-right').toggleClass('fa-arrow-circle-left');
|
|
||||||
$('main').toggleClass('region_1-on');
|
|
||||||
$('body').css('overflow-x', '');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
265
library/sticky-kit/sticky-kit.js
Normal file
265
library/sticky-kit/sticky-kit.js
Normal file
@ -0,0 +1,265 @@
|
|||||||
|
// Generated by CoffeeScript 1.10.0
|
||||||
|
|
||||||
|
/**
|
||||||
|
@license Sticky-kit v1.1.3 | MIT | Leaf Corcoran 2015 | http://leafo.net
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
var $, win;
|
||||||
|
|
||||||
|
$ = window.jQuery;
|
||||||
|
|
||||||
|
win = $(window);
|
||||||
|
|
||||||
|
$.fn.stick_in_parent = function(opts) {
|
||||||
|
var doc, elm, enable_bottoming, fn, i, inner_scrolling, len, manual_spacer, offset_top, outer_width, parent_selector, recalc_every, sticky_class;
|
||||||
|
if (opts == null) {
|
||||||
|
opts = {};
|
||||||
|
}
|
||||||
|
sticky_class = opts.sticky_class, inner_scrolling = opts.inner_scrolling, recalc_every = opts.recalc_every, parent_selector = opts.parent, offset_top = opts.offset_top, manual_spacer = opts.spacer, enable_bottoming = opts.bottoming;
|
||||||
|
if (offset_top == null) {
|
||||||
|
offset_top = 0;
|
||||||
|
}
|
||||||
|
if (parent_selector == null) {
|
||||||
|
parent_selector = void 0;
|
||||||
|
}
|
||||||
|
if (inner_scrolling == null) {
|
||||||
|
inner_scrolling = true;
|
||||||
|
}
|
||||||
|
if (sticky_class == null) {
|
||||||
|
sticky_class = "is_stuck";
|
||||||
|
}
|
||||||
|
doc = $(document);
|
||||||
|
if (enable_bottoming == null) {
|
||||||
|
enable_bottoming = true;
|
||||||
|
}
|
||||||
|
outer_width = function(el) {
|
||||||
|
var _el, computed, w;
|
||||||
|
if (window.getComputedStyle) {
|
||||||
|
_el = el[0];
|
||||||
|
computed = window.getComputedStyle(el[0]);
|
||||||
|
w = parseFloat(computed.getPropertyValue("width")) + parseFloat(computed.getPropertyValue("margin-left")) + parseFloat(computed.getPropertyValue("margin-right"));
|
||||||
|
if (computed.getPropertyValue("box-sizing") !== "border-box") {
|
||||||
|
w += parseFloat(computed.getPropertyValue("border-left-width")) + parseFloat(computed.getPropertyValue("border-right-width")) + parseFloat(computed.getPropertyValue("padding-left")) + parseFloat(computed.getPropertyValue("padding-right"));
|
||||||
|
}
|
||||||
|
return w;
|
||||||
|
} else {
|
||||||
|
return el.outerWidth(true);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
fn = function(elm, padding_bottom, parent_top, parent_height, top, height, el_float, detached) {
|
||||||
|
var bottomed, detach, fixed, last_pos, last_scroll_height, offset, parent, recalc, recalc_and_tick, recalc_counter, spacer, tick;
|
||||||
|
if (elm.data("sticky_kit")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
elm.data("sticky_kit", true);
|
||||||
|
last_scroll_height = doc.height();
|
||||||
|
parent = elm.parent();
|
||||||
|
if (parent_selector != null) {
|
||||||
|
parent = parent.closest(parent_selector);
|
||||||
|
}
|
||||||
|
if (!parent.length) {
|
||||||
|
throw "failed to find stick parent";
|
||||||
|
}
|
||||||
|
fixed = false;
|
||||||
|
bottomed = false;
|
||||||
|
spacer = manual_spacer != null ? manual_spacer && elm.closest(manual_spacer) : $("<div />");
|
||||||
|
if (spacer) {
|
||||||
|
spacer.css('position', elm.css('position'));
|
||||||
|
}
|
||||||
|
recalc = function() {
|
||||||
|
var border_top, padding_top, restore;
|
||||||
|
if (detached) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
last_scroll_height = doc.height();
|
||||||
|
border_top = parseInt(parent.css("border-top-width"), 10);
|
||||||
|
padding_top = parseInt(parent.css("padding-top"), 10);
|
||||||
|
padding_bottom = parseInt(parent.css("padding-bottom"), 10);
|
||||||
|
parent_top = parent.offset().top + border_top + padding_top;
|
||||||
|
parent_height = parent.height();
|
||||||
|
if (fixed) {
|
||||||
|
fixed = false;
|
||||||
|
bottomed = false;
|
||||||
|
if (manual_spacer == null) {
|
||||||
|
elm.insertAfter(spacer);
|
||||||
|
spacer.detach();
|
||||||
|
}
|
||||||
|
elm.css({
|
||||||
|
position: "",
|
||||||
|
top: "",
|
||||||
|
width: "",
|
||||||
|
bottom: ""
|
||||||
|
}).removeClass(sticky_class);
|
||||||
|
restore = true;
|
||||||
|
}
|
||||||
|
top = elm.offset().top - (parseInt(elm.css("margin-top"), 10) || 0) - offset_top;
|
||||||
|
height = elm.outerHeight(true);
|
||||||
|
el_float = elm.css("float");
|
||||||
|
if (spacer) {
|
||||||
|
spacer.css({
|
||||||
|
width: outer_width(elm),
|
||||||
|
height: height,
|
||||||
|
display: elm.css("display"),
|
||||||
|
"vertical-align": elm.css("vertical-align"),
|
||||||
|
"float": el_float
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (restore) {
|
||||||
|
return tick();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
recalc();
|
||||||
|
if (height === parent_height) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
last_pos = void 0;
|
||||||
|
offset = offset_top;
|
||||||
|
recalc_counter = recalc_every;
|
||||||
|
tick = function() {
|
||||||
|
var css, delta, recalced, scroll, will_bottom, win_height;
|
||||||
|
if (detached) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
recalced = false;
|
||||||
|
if (recalc_counter != null) {
|
||||||
|
recalc_counter -= 1;
|
||||||
|
if (recalc_counter <= 0) {
|
||||||
|
recalc_counter = recalc_every;
|
||||||
|
recalc();
|
||||||
|
recalced = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!recalced && doc.height() !== last_scroll_height) {
|
||||||
|
recalc();
|
||||||
|
recalced = true;
|
||||||
|
}
|
||||||
|
scroll = win.scrollTop();
|
||||||
|
if (last_pos != null) {
|
||||||
|
delta = scroll - last_pos;
|
||||||
|
}
|
||||||
|
last_pos = scroll;
|
||||||
|
if (fixed) {
|
||||||
|
if (enable_bottoming) {
|
||||||
|
will_bottom = scroll + height + offset > parent_height + parent_top;
|
||||||
|
if (bottomed && !will_bottom) {
|
||||||
|
bottomed = false;
|
||||||
|
elm.css({
|
||||||
|
position: "fixed",
|
||||||
|
bottom: "",
|
||||||
|
top: offset
|
||||||
|
}).trigger("sticky_kit:unbottom");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (scroll < top) {
|
||||||
|
fixed = false;
|
||||||
|
offset = offset_top;
|
||||||
|
if (manual_spacer == null) {
|
||||||
|
if (el_float === "left" || el_float === "right") {
|
||||||
|
elm.insertAfter(spacer);
|
||||||
|
}
|
||||||
|
spacer.detach();
|
||||||
|
}
|
||||||
|
css = {
|
||||||
|
position: "",
|
||||||
|
width: "",
|
||||||
|
top: ""
|
||||||
|
};
|
||||||
|
elm.css(css).removeClass(sticky_class).trigger("sticky_kit:unstick");
|
||||||
|
}
|
||||||
|
if (inner_scrolling) {
|
||||||
|
win_height = win.height();
|
||||||
|
if (height + offset_top > win_height) {
|
||||||
|
if (!bottomed) {
|
||||||
|
offset -= delta;
|
||||||
|
offset = Math.max(win_height - height, offset);
|
||||||
|
offset = Math.min(offset_top, offset);
|
||||||
|
if (fixed) {
|
||||||
|
elm.css({
|
||||||
|
top: offset + "px"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (scroll > top) {
|
||||||
|
fixed = true;
|
||||||
|
css = {
|
||||||
|
position: "fixed",
|
||||||
|
top: offset
|
||||||
|
};
|
||||||
|
css.width = elm.css("box-sizing") === "border-box" ? elm.outerWidth() + "px" : elm.width() + "px";
|
||||||
|
elm.css(css).addClass(sticky_class);
|
||||||
|
if (manual_spacer == null) {
|
||||||
|
elm.after(spacer);
|
||||||
|
if (el_float === "left" || el_float === "right") {
|
||||||
|
spacer.append(elm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elm.trigger("sticky_kit:stick");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (fixed && enable_bottoming) {
|
||||||
|
if (will_bottom == null) {
|
||||||
|
will_bottom = scroll + height + offset > parent_height + parent_top;
|
||||||
|
}
|
||||||
|
if (!bottomed && will_bottom) {
|
||||||
|
bottomed = true;
|
||||||
|
if (parent.css("position") === "static") {
|
||||||
|
parent.css({
|
||||||
|
position: "relative"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return elm.css({
|
||||||
|
position: "absolute",
|
||||||
|
bottom: padding_bottom,
|
||||||
|
top: "auto"
|
||||||
|
}).trigger("sticky_kit:bottom");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
recalc_and_tick = function() {
|
||||||
|
recalc();
|
||||||
|
return tick();
|
||||||
|
};
|
||||||
|
detach = function() {
|
||||||
|
detached = true;
|
||||||
|
win.off("touchmove", tick);
|
||||||
|
win.off("scroll", tick);
|
||||||
|
win.off("resize", recalc_and_tick);
|
||||||
|
$(document.body).off("sticky_kit:recalc", recalc_and_tick);
|
||||||
|
elm.off("sticky_kit:detach", detach);
|
||||||
|
elm.removeData("sticky_kit");
|
||||||
|
elm.css({
|
||||||
|
position: "",
|
||||||
|
bottom: "",
|
||||||
|
top: "",
|
||||||
|
width: ""
|
||||||
|
});
|
||||||
|
parent.position("position", "");
|
||||||
|
if (fixed) {
|
||||||
|
if (manual_spacer == null) {
|
||||||
|
if (el_float === "left" || el_float === "right") {
|
||||||
|
elm.insertAfter(spacer);
|
||||||
|
}
|
||||||
|
spacer.remove();
|
||||||
|
}
|
||||||
|
return elm.removeClass(sticky_class);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
win.on("touchmove", tick);
|
||||||
|
win.on("scroll", tick);
|
||||||
|
win.on("resize", recalc_and_tick);
|
||||||
|
$(document.body).on("sticky_kit:recalc", recalc_and_tick);
|
||||||
|
elm.on("sticky_kit:detach", detach);
|
||||||
|
return setTimeout(tick, 0);
|
||||||
|
};
|
||||||
|
for (i = 0, len = this.length; i < len; i++) {
|
||||||
|
elm = this[i];
|
||||||
|
fn($(elm));
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
};
|
||||||
|
|
||||||
|
}).call(this);
|
10
library/sticky-kit/sticky-kit.min.js
vendored
Normal file
10
library/sticky-kit/sticky-kit.min.js
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
/*
|
||||||
|
Sticky-kit v1.1.3 | MIT | Leaf Corcoran 2015 | http://leafo.net
|
||||||
|
*/
|
||||||
|
(function(){var c,f;c=window.jQuery;f=c(window);c.fn.stick_in_parent=function(b){var A,w,J,n,B,K,p,q,L,k,E,t;null==b&&(b={});t=b.sticky_class;B=b.inner_scrolling;E=b.recalc_every;k=b.parent;q=b.offset_top;p=b.spacer;w=b.bottoming;null==q&&(q=0);null==k&&(k=void 0);null==B&&(B=!0);null==t&&(t="is_stuck");A=c(document);null==w&&(w=!0);L=function(a){var b;return window.getComputedStyle?(a=window.getComputedStyle(a[0]),b=parseFloat(a.getPropertyValue("width"))+parseFloat(a.getPropertyValue("margin-left"))+
|
||||||
|
parseFloat(a.getPropertyValue("margin-right")),"border-box"!==a.getPropertyValue("box-sizing")&&(b+=parseFloat(a.getPropertyValue("border-left-width"))+parseFloat(a.getPropertyValue("border-right-width"))+parseFloat(a.getPropertyValue("padding-left"))+parseFloat(a.getPropertyValue("padding-right"))),b):a.outerWidth(!0)};J=function(a,b,n,C,F,u,r,G){var v,H,m,D,I,d,g,x,y,z,h,l;if(!a.data("sticky_kit")){a.data("sticky_kit",!0);I=A.height();g=a.parent();null!=k&&(g=g.closest(k));if(!g.length)throw"failed to find stick parent";
|
||||||
|
v=m=!1;(h=null!=p?p&&a.closest(p):c("<div />"))&&h.css("position",a.css("position"));x=function(){var d,f,e;if(!G&&(I=A.height(),d=parseInt(g.css("border-top-width"),10),f=parseInt(g.css("padding-top"),10),b=parseInt(g.css("padding-bottom"),10),n=g.offset().top+d+f,C=g.height(),m&&(v=m=!1,null==p&&(a.insertAfter(h),h.detach()),a.css({position:"",top:"",width:"",bottom:""}).removeClass(t),e=!0),F=a.offset().top-(parseInt(a.css("margin-top"),10)||0)-q,u=a.outerHeight(!0),r=a.css("float"),h&&h.css({width:L(a),
|
||||||
|
height:u,display:a.css("display"),"vertical-align":a.css("vertical-align"),"float":r}),e))return l()};x();if(u!==C)return D=void 0,d=q,z=E,l=function(){var c,l,e,k;if(!G&&(e=!1,null!=z&&(--z,0>=z&&(z=E,x(),e=!0)),e||A.height()===I||x(),e=f.scrollTop(),null!=D&&(l=e-D),D=e,m?(w&&(k=e+u+d>C+n,v&&!k&&(v=!1,a.css({position:"fixed",bottom:"",top:d}).trigger("sticky_kit:unbottom"))),e<F&&(m=!1,d=q,null==p&&("left"!==r&&"right"!==r||a.insertAfter(h),h.detach()),c={position:"",width:"",top:""},a.css(c).removeClass(t).trigger("sticky_kit:unstick")),
|
||||||
|
B&&(c=f.height(),u+q>c&&!v&&(d-=l,d=Math.max(c-u,d),d=Math.min(q,d),m&&a.css({top:d+"px"})))):e>F&&(m=!0,c={position:"fixed",top:d},c.width="border-box"===a.css("box-sizing")?a.outerWidth()+"px":a.width()+"px",a.css(c).addClass(t),null==p&&(a.after(h),"left"!==r&&"right"!==r||h.append(a)),a.trigger("sticky_kit:stick")),m&&w&&(null==k&&(k=e+u+d>C+n),!v&&k)))return v=!0,"static"===g.css("position")&&g.css({position:"relative"}),a.css({position:"absolute",bottom:b,top:"auto"}).trigger("sticky_kit:bottom")},
|
||||||
|
y=function(){x();return l()},H=function(){G=!0;f.off("touchmove",l);f.off("scroll",l);f.off("resize",y);c(document.body).off("sticky_kit:recalc",y);a.off("sticky_kit:detach",H);a.removeData("sticky_kit");a.css({position:"",bottom:"",top:"",width:""});g.position("position","");if(m)return null==p&&("left"!==r&&"right"!==r||a.insertAfter(h),h.remove()),a.removeClass(t)},f.on("touchmove",l),f.on("scroll",l),f.on("resize",y),c(document.body).on("sticky_kit:recalc",y),a.on("sticky_kit:detach",H),setTimeout(l,
|
||||||
|
0)}};n=0;for(K=this.length;n<K;n++)b=this[n],J(c(b));return this}}).call(this);
|
@ -666,6 +666,8 @@ function updateConvItems(mode,data) {
|
|||||||
$('.item_' + bParam_mid.substring(0,32)).addClass('item-highlight');
|
$('.item_' + bParam_mid.substring(0,32)).addClass('item-highlight');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$(document.body).trigger("sticky_kit:recalc");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function collapseHeight() {
|
function collapseHeight() {
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<header><?php if(x($page,'header')) echo $page['header']; ?></header>
|
<header><?php if(x($page,'header')) echo $page['header']; ?></header>
|
||||||
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation"><?php if(x($page,'nav')) echo $page['nav']; ?></nav>
|
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation"><?php if(x($page,'nav')) echo $page['nav']; ?></nav>
|
||||||
<main>
|
<main>
|
||||||
<aside id="region_1"><?php if(x($page,'aside')) echo $page['aside']; ?></aside>
|
<aside id="region_1"><div id="left_aside_wrapper"><?php if(x($page,'aside')) echo $page['aside']; ?></div></aside>
|
||||||
<section id="region_2"><?php if(x($page,'content')) echo $page['content']; ?>
|
<section id="region_2"><?php if(x($page,'content')) echo $page['content']; ?>
|
||||||
<div id="page-footer"></div>
|
<div id="page-footer"></div>
|
||||||
<div id="pause"></div>
|
<div id="pause"></div>
|
||||||
|
@ -26,6 +26,7 @@ head_add_js('library/jquery-textcomplete/jquery.textcomplete.js');
|
|||||||
//head_add_js('library/colorbox/jquery.colorbox.js');
|
//head_add_js('library/colorbox/jquery.colorbox.js');
|
||||||
head_add_js('library/jquery.timeago.js');
|
head_add_js('library/jquery.timeago.js');
|
||||||
head_add_js('library/readmore.js/readmore.js');
|
head_add_js('library/readmore.js/readmore.js');
|
||||||
|
head_add_js('library/sticky-kit/sticky-kit.min.js');
|
||||||
//head_add_js('library/jquery_ac/friendica.complete.js');
|
//head_add_js('library/jquery_ac/friendica.complete.js');
|
||||||
//head_add_js('library/tiptip/jquery.tipTip.minified.js');
|
//head_add_js('library/tiptip/jquery.tipTip.minified.js');
|
||||||
head_add_js('library/jgrowl/jquery.jgrowl_minimized.js');
|
head_add_js('library/jgrowl/jquery.jgrowl_minimized.js');
|
||||||
|
@ -16,6 +16,23 @@ $(document).ready(function() {
|
|||||||
}
|
}
|
||||||
$('#css3-calc').remove(); // Remove the test element
|
$('#css3-calc').remove(); // Remove the test element
|
||||||
|
|
||||||
|
if($(window).outerWidth() > 767) {
|
||||||
|
$('#left_aside_wrapper').stick_in_parent({
|
||||||
|
offset_top: $('nav').outerHeight(true)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$(window).resize(function() {
|
||||||
|
if($(window).outerWidth() > 767) {
|
||||||
|
$('#left_aside_wrapper').stick_in_parent({
|
||||||
|
offset_top: $('nav').outerHeight(true)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$('#left_aside_wrapper').trigger("sticky_kit:detach");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
$('#expand-aside').click(function() {
|
$('#expand-aside').click(function() {
|
||||||
$('#expand-aside-icon').toggleClass('fa-arrow-circle-right').toggleClass('fa-arrow-circle-left');
|
$('#expand-aside-icon').toggleClass('fa-arrow-circle-right').toggleClass('fa-arrow-circle-left');
|
||||||
$('main').toggleClass('region_1-on');
|
$('main').toggleClass('region_1-on');
|
||||||
|
Reference in New Issue
Block a user