|
- import $ from 'jquery';
-
- class IHKSidebar {
- constructor(sidebar) {
- this.sidebar = sidebar.addClass('initiated');
- this.timer = null;
-
- const observer = new ResizeObserver((entries) => {
- this.handleResize();
- })
- observer.observe(sidebar.get(0));
-
- $(window).on('resize', () => {
- this.handleResize();
- })
- }
-
- handleResize() {
- if (this.timer) {
- clearTimeout(this.timer);
- }
-
- this.timer = window.setTimeout(() => {
- if (this.sidebar.outerHeight() < $(window).height() - 40) {
- this.sidebar.addClass('sticky');
- }
- else {
- this.sidebar.removeClass('sticky');
- }
- }, 250)
- }
- }
-
- export default IHKSidebar;
-
- $('body').on('ihk-init dynamic-component-loaded', function () {
- $('.sidebar:not(.initiated)').each(function(i) {
- new IHKSidebar($(this));
- });
- })
|