'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