'use strict'; import $ from 'jquery'; import Events from '../_events'; const HeaderUI = (($) => { const D = document; const W = window; const $Body = $('html,body'); const NAME = 'HeaderUI'; const CLASSNAME = `js${NAME}`; class HeaderUI { static init() { const ui = this; ui.dispose(); console.log(`${NAME}: init`); const $header = $(`#Header,.js${NAME}`); const updateHeader = () => { const h = $header.height(); const s = $Body.scrollTop(); if (s + 50 > h) { $Body.addClass('shrink'); } else { $Body.removeClass('shrink'); } }; updateHeader(); const updateFooter = (i, el) => { const $el = $(el); const footerHeight = $el.height(); $el.css('height', footerHeight); $el.css('margin-top', -footerHeight); $el.siblings('.wrapper').css('padding-bottom', footerHeight); }; $('.footer,.jsFooterUI').css('height', 'auto'); setTimeout(() => { $('.footer,.jsFooterUI').each(updateFooter); }, 500); } static dispose() { console.log(`${NAME}: dispose`); $Body.removeClass('shrink'); $(`#Header,.js${NAME},.footer,.jsFooterUI,.wrapper`).attr('css', ''); } } $(W).on(`${Events.AJAX} ${Events.LOADED}`, () => { HeaderUI.init(); }); // align event content $(W).on(`${Events.RESIZE}`, () => { setTimeout(() => { HeaderUI.init(); }, 200); }); W.HeaderUI = new HeaderUI(); return HeaderUI; })($); export default HeaderUI;