|
|
@@ -231,6 +231,30 @@ Crowi.userPicture = function (user) {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+Crowi.modifyScrollTop = function() {
|
|
|
+ var offset = 10;
|
|
|
+
|
|
|
+ var hash = window.location.hash;
|
|
|
+ if (hash === "") {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ var pageHeader = document.querySelector('#page-header');
|
|
|
+ var pageHeaderRect = pageHeader.getBoundingClientRect();
|
|
|
+
|
|
|
+ var sectionHeader = document.querySelector(hash);
|
|
|
+ if (sectionHeader === null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ var sectionHeaderRect = sectionHeader.getBoundingClientRect();
|
|
|
+ if (sectionHeaderRect.top >= pageHeaderRect.bottom) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ window.scrollTo(0, (window.scrollY - pageHeaderRect.height - offset));
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
//CrowiSearcher = function(path, $el) {
|
|
|
// this.$el = $el;
|
|
|
@@ -846,3 +870,10 @@ $(function() {
|
|
|
// for search
|
|
|
//
|
|
|
});
|
|
|
+
|
|
|
+window.addEventListener('load', function(e) {
|
|
|
+ Crowi.modifyScrollTop();
|
|
|
+});
|
|
|
+window.addEventListener('hashchange', function(e) {
|
|
|
+ Crowi.modifyScrollTop();
|
|
|
+});
|