TOC Optimizations
This commit is contained in:
@@ -87,20 +87,25 @@ document.addEventListener('DOMContentLoaded', function () {
|
|||||||
var footer = document.querySelector('footer.site-footer, footer, #colophon');
|
var footer = document.querySelector('footer.site-footer, footer, #colophon');
|
||||||
if (!footer) return;
|
if (!footer) return;
|
||||||
|
|
||||||
var footerRect = footer.getBoundingClientRect();
|
|
||||||
var tocRect = toc.getBoundingClientRect();
|
|
||||||
|
|
||||||
var offset = 40;
|
|
||||||
var triggerOffset = Math.min(200, window.innerHeight * 0.2);
|
|
||||||
|
|
||||||
var overlap = tocRect.bottom - (footerRect.top - triggerOffset);
|
|
||||||
|
|
||||||
if (overlap > -offset) {
|
|
||||||
var strength = 0.85;
|
|
||||||
var correction = Math.max(0, (overlap + offset) * strength);
|
|
||||||
toc.style.transform = 'translateY(-' + correction + 'px)';
|
|
||||||
} else {
|
|
||||||
toc.style.transform = '';
|
toc.style.transform = '';
|
||||||
|
|
||||||
|
var scrollTop = window.scrollY || window.pageYOffset;
|
||||||
|
|
||||||
|
var footerTop = footer.getBoundingClientRect().top + scrollTop;
|
||||||
|
|
||||||
|
var tocRect = toc.getBoundingClientRect();
|
||||||
|
var tocTop = tocRect.top + scrollTop;
|
||||||
|
var tocHeight = tocRect.height;
|
||||||
|
var tocBottom = tocTop + tocHeight;
|
||||||
|
|
||||||
|
var offset = 130;
|
||||||
|
|
||||||
|
var maxBottom = footerTop - offset;
|
||||||
|
|
||||||
|
var overflow = tocBottom - maxBottom;
|
||||||
|
|
||||||
|
if (overflow > 0) {
|
||||||
|
toc.style.transform = 'translateY(-' + overflow + 'px)';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ Author: Zeitfresser
|
|||||||
Author URI: https://ztfr.eu/
|
Author URI: https://ztfr.eu/
|
||||||
Theme URI: https://ztfr.eu/
|
Theme URI: https://ztfr.eu/
|
||||||
Description: Zeitfresser Wordpress Theme
|
Description: Zeitfresser Wordpress Theme
|
||||||
Version: 1.1
|
Version: 1.2
|
||||||
Tested up to: 6.2
|
Tested up to: 6.2
|
||||||
Requires PHP: 7.0
|
Requires PHP: 7.0
|
||||||
License: GNU General Public License v2 or later
|
License: GNU General Public License v2 or later
|
||||||
@@ -53,7 +53,7 @@ html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:b
|
|||||||
backdrop-filter:none !important;
|
backdrop-filter:none !important;
|
||||||
box-shadow:none !important;
|
box-shadow:none !important;
|
||||||
|
|
||||||
overflow:hidden !important;
|
overflow:visible !important;
|
||||||
|
|
||||||
transform:none;
|
transform:none;
|
||||||
pointer-events:auto !important;
|
pointer-events:auto !important;
|
||||||
@@ -64,7 +64,7 @@ html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:b
|
|||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition: opacity 0.12s ease-out;
|
transition: opacity 0.12s ease-out;
|
||||||
|
|
||||||
will-change: opacity, transform;
|
will-change: transform, opacity;
|
||||||
}
|
}
|
||||||
|
|
||||||
.zeitfresser-floating-toc.is-visible{
|
.zeitfresser-floating-toc.is-visible{
|
||||||
|
|||||||
Reference in New Issue
Block a user