mirror of
https://github.com/zombieFox/nightTab.git
synced 2024-11-24 17:14:28 +01:00
166 lines
4.3 KiB
JavaScript
166 lines
4.3 KiB
JavaScript
var header = (function() {
|
|
|
|
var _bind = function() {
|
|
window.addEventListener("resize", function() {
|
|
render.shade();
|
|
}, false);
|
|
window.addEventListener("scroll", function() {
|
|
render.shade();
|
|
}, false);
|
|
helper.eA(".container").forEach(function(arrayItem, index) {
|
|
arrayItem.addEventListener("transitionend", function() {
|
|
render.shade();
|
|
}, false);
|
|
});
|
|
document.fonts.ready.then(function() {
|
|
render.shade();
|
|
});
|
|
};
|
|
|
|
var render = {
|
|
area: {
|
|
width: function() {
|
|
_renderWidth();
|
|
}
|
|
},
|
|
shade: function() {
|
|
_renderShade();
|
|
},
|
|
opacity: function() {
|
|
_renderOpacity();
|
|
},
|
|
border: function() {
|
|
_renderBorder();
|
|
},
|
|
search: {
|
|
width: function() {
|
|
_renderSearchWidth();
|
|
},
|
|
size: function() {
|
|
_renderSearchSize();
|
|
}
|
|
},
|
|
greeting: {
|
|
size: function() {
|
|
_renderGreetingSize();
|
|
}
|
|
},
|
|
transitional: {
|
|
size: function() {
|
|
_renderTransitionalSize();
|
|
}
|
|
},
|
|
clock: {
|
|
size: function() {
|
|
_renderClockSize();
|
|
}
|
|
},
|
|
date: {
|
|
size: function() {
|
|
_renderDateSize();
|
|
}
|
|
},
|
|
button: {
|
|
size: function() {
|
|
_renderButtonSize();
|
|
}
|
|
}
|
|
};
|
|
|
|
var _renderWidth = function() {
|
|
var html = helper.e("html");
|
|
html.style.setProperty("--header-area-width", state.get().header.area.width + "%");
|
|
};
|
|
|
|
var _renderShade = function() {
|
|
var html = helper.e("html");
|
|
var fontSize = parseInt(getComputedStyle(html).fontSize, 10);
|
|
var scrollPosition = document.documentElement.scrollTop;
|
|
if (state.get().header.shade.show) {
|
|
if (state.get().header.shade.style == "always") {
|
|
html.style.setProperty("--header-shade-color", "var(--gray-01)");
|
|
} else if (state.get().header.shade.style == "scroll") {
|
|
if (scrollPosition > (fontSize * 2)) {
|
|
html.style.setProperty("--header-shade-color", "var(--gray-01)");
|
|
} else {
|
|
html.style.setProperty("--header-shade-color", "transparent");
|
|
};
|
|
} else {
|
|
html.style.setProperty("--header-shade-color", "transparent");
|
|
};
|
|
} else {
|
|
html.style.setProperty("--header-shade-color", "transparent");
|
|
};
|
|
};
|
|
|
|
var _renderOpacity = function() {
|
|
var html = helper.e("html");
|
|
if (state.get().header.shade.show) {
|
|
html.style.setProperty("--header-shade-opacity", state.get().header.shade.opacity);
|
|
};
|
|
};
|
|
|
|
var _renderBorder = function() {
|
|
var html = helper.e("html");
|
|
html.style.setProperty("--header-border-top", state.get().header.border.top);
|
|
html.style.setProperty("--header-border-bottom", state.get().header.border.bottom);
|
|
};
|
|
|
|
var _renderSearchWidth = function() {
|
|
var html = helper.e("html");
|
|
html.style.setProperty("--header-search-width", state.get().header.search.width + "%");
|
|
};
|
|
|
|
var _renderSearchSize = function() {
|
|
var html = helper.e("html");
|
|
html.style.setProperty("--header-search-size", state.get().header.search.size + "em");
|
|
};
|
|
|
|
var _renderGreetingSize = function() {
|
|
var html = helper.e("html");
|
|
html.style.setProperty("--header-greeting-size", state.get().header.greeting.size + "em");
|
|
};
|
|
|
|
var _renderTransitionalSize = function() {
|
|
var html = helper.e("html");
|
|
html.style.setProperty("--header-transitional-size", state.get().header.transitional.size + "em");
|
|
};
|
|
|
|
var _renderClockSize = function() {
|
|
var html = helper.e("html");
|
|
html.style.setProperty("--header-clock-size", state.get().header.clock.size + "em");
|
|
};
|
|
|
|
var _renderDateSize = function() {
|
|
var html = helper.e("html");
|
|
html.style.setProperty("--header-date-size", state.get().header.date.size + "em");
|
|
};
|
|
|
|
var _renderButtonSize = function() {
|
|
var html = helper.e("html");
|
|
html.style.setProperty("--header-button-size", state.get().header.button.size + "em");
|
|
};
|
|
|
|
var init = function() {
|
|
_bind();
|
|
render.area.width();
|
|
render.shade();
|
|
render.opacity();
|
|
render.border();
|
|
render.greeting.size();
|
|
render.transitional.size();
|
|
render.clock.size();
|
|
render.date.size();
|
|
render.search.width();
|
|
render.search.size();
|
|
render.button.size();
|
|
};
|
|
|
|
// exposed methods
|
|
return {
|
|
render: render,
|
|
init: init
|
|
};
|
|
|
|
})();
|