Javascript work

* removed cache and remember from js task
 * renamed js variables
 * reworked js code
 * added logPerf function to page head
This commit is contained in:
Stephan 2019-03-29 18:41:27 +01:00
parent 0fa1b3c4b4
commit 4cb89ec7af
8 changed files with 257 additions and 235 deletions

View file

@ -19,7 +19,7 @@
"nonbsp" : true, // true: Prohibit "non-breaking whitespace" characters.
"nonew" : false, // true: Prohibit use of constructors for side-effects (without assignment)
"plusplus" : false, // true: Prohibit use of `++` and `--`
"quotmark" : true, // Quotation mark consistency:
"quotmark" : false, // Quotation mark consistency:
// false : do nothing (default)
// true : ensure whatever is used is consistent
// "single" : require single quotes
@ -87,5 +87,16 @@
"yui" : false, // Yahoo User Interface
// Custom Globals
"globals" : {"hippie": true} // additional predefined global variables
"globals" : {
"hippie": true,
"viewW": true,
"viewH": true,
"htmlH": true,
"bodyW": true,
"bodyH": true,
"docPosY": true,
"docInitleft": true,
"viewHover": true,
"basicEase": true
} // additional predefined global variables
}

View file

@ -179,11 +179,12 @@ function code(cb) {
sourcemaps: true,
allowEmpty: true
}),
cache('code'),
plumber(),
// cache('code'),
concat(hippie.jsFile +'.js'),
dest(output.code),
uglify(),
remember('code'),
// remember('code'),
rename({
suffix: '.min'
}),

View file

@ -1,10 +1,10 @@
"use strict";
function setup() {
console.log('\n', hippie_brand, '\n\n');
console.info('Debug information:\n\nHTML height is', html_height, '\nBODY height is', body_height, '\nVIEW height is', view_height);
console.log('\n', hippie.brand, '\n\n');
console.info('Debug information:\n\nHTML height is', htmlH, '\nBODY height is', bodyH, '\nVIEW height is', viewH);
if($('#js_tph').length && full_view_hover) {
if($('#js_tph').length && viewHover) {
// $('body').prepend("<div id=\"js_tph\" class=\"layer__hover hover_full_view_change\"></div>");
$('#js_tph').addClass("hover_full_view_change");
}

View file

@ -1,155 +1,126 @@
"use strict";
// Setup
// -----------------------------------------------------------------------------
setup();
// DOM ready
// ------------------------------------------------------------------------------
$( document ).ready(function() {
// Setup
// ------------------------------------------------------------------------------
setup();
// -----------------------------------------------------------------------------
$(document).ready(function(){
"use strict";
// logPerf('DOM ready.');
// Modules
// ------------------------------------------------------------------------------
// ---------------------------------------------------------------------------
// Explanation module scripts
var exp_mode = false;
var expMode = false;
// Displays explanation popup
$(".js_pop").hover(
function() {
var $this = $(this);
// if($(this).attr("emmet")){
$('.js_pop').hover(
function(){
// if($(this).attr('emmet')){
//
// }
$(this).next(".exp_pop").show();
}, function() {
$(this).next(".exp_pop").hide();
$(this).next('.exp_pop').show();
}, function(){
$(this).next('.exp_pop').hide();
}
).mousemove(
function(ev) {
$(this).next(".exp_pop").css({
"top": ev.pageY - $(this).next(".exp_pop").outerHeight() - 4,
"left": ev.pageX + 8
// "left": ev.pageX - $(this).offset().left + 8
function(event){
$(this).next('.exp_pop').css({
'top': event.pageY - $(this).next('.exp_pop').outerHeight() - 4,
'left': event.pageX + 8
// 'left': event.pageX - $(this).offset().left + 8
});
// TODO - needs more love
// console.log(ev.pageX);
// console.log(event.pageX);
}
);
// WIP Activates layer with explanation elements
// Besser ::after oder ::before benutzen
$(".js_showmeta").click(function(e){
$('.js_showmeta').click(function(e){
var $wrap, $pop;
if(exp_mode !== true){
exp_mode = true;
if(expMode !== true){
expMode = true;
$(".js_pop").each(function(i, e){
if($(this).css("position") === "static") {
$(this).addClass("js_changed_pos");
$(this).css("position", "relative");
$('.js_pop').each(function(i, e){
if($(this).css('position') === 'static'){
$(this).addClass('js_changed_pos');
$(this).css('position', 'relative');
}
$pop = $(this).next(".exp_pop").detach();
$wrap = $(this).wrap("<span class=\"exp_wrap\"></span>").parent().prepend("<span class=\"exp_marker_pop\"></span>");
$pop = $(this).next('.exp_pop').detach();
$wrap = $(this).wrap('<span class="exp_wrap"></span>').parent().prepend('<span class="exp_marker_pop"></span>');
$wrap.after($pop);
});
} else {
$(".js_pop").each(function(i, e){
$wrap = $(this).parent(".exp_wrap");
$pop = $wrap.next(".exp_pop").detach();
$wrap.find(".exp_marker_pop").remove();
$(this).unwrap(".exp_wrap");
$('.js_pop').each(function(i, e){
$wrap = $(this).parent('.exp_wrap');
$pop = $wrap.next('.exp_pop').detach();
$wrap.find('.exp_marker_pop').remove();
$(this).unwrap('.exp_wrap');
$(this).after($pop);
if($(this).hasClass("js_changed_pos")){
$(this).css("position", "");
if($(this).attr("style") === "") {
$(this).removeAttr("style");
if($(this).hasClass('js_changed_pos')){
$(this).css('position', '');
if($(this).attr('style') === ''){
$(this).removeAttr('style');
}
$(this).removeClass("js_changed_pos");
$(this).removeClass('js_changed_pos');
}
});
exp_mode = false;
expMode = false;
}
console.log("Explanation mode", exp_mode);
console.log('Explanation mode', expMode);
});
// WIP Scroll to top
$('.js_scrolltop').click(function(event) {
$('.js_scrolltop').click(function(event){
event.preventDefault();
console.log('scroll to the top');
document.documentElement.scrollTop = document.body.scrollTop = 0;
// var body = document.querySelector('body');
// // get scroll position in px
// console.log(body.scrollTop);
// // set scroll position in px
// body.scrollTop = 0;
// $('body')[0].scrollTop = 0;
// $('body').animate({scrollTop: 0}, basic_ease, function() {
// console.log('arrived at top');
// });
$('html, body').animate({
scrollTop: 0
}, basicEase);
});
$('.js_scrolldown').click(function(event) {
$('.js_scrolldown').click(function(event){
event.preventDefault();
var pos = Math.max(html_height, body_height) - view_height;
console.log('scroll down to', pos);
var pos = Math.max(htmlH, bodyH) - viewH;
document.documentElement.scrollTop = pos;
console.info('scrolled down to', pos);
});
$( "#gameIcon" ).click(function(event) {
$('#gameIcon').click(function(event){
event.preventDefault();
$( this ).clone().appendTo( "#gameDetail" );
$( this ).siblings().clone().appendTo( "#gameDetail" );
$( "#gameDetail" ).removeClass( "magic" );
$(this).clone().appendTo('#gameDetail');
$(this).siblings().clone().appendTo('#gameDetail');
$('#gameDetail').removeClass('magic');
});
var i = 0;
$( ".pass-def dd" ).each(function() {
$( this ).find( "li" ).each(function( index ) {
if ( 0 === $( this ).children( "ul" ).length ) {
//console.log(index, ":", $( this ).text());
var tempContent = $( this ).html();
//$( this ).html( "<span class=\"list-count\"></span>" );
$( this ).html(tempContent + "<span class=\"list-count\">" + i + "</span>");
i++;
}
});
});
});
// Scroll
// ------------------------------------------------------------------------------
$( document ).scroll(function() {
$( document ).scroll(function(){
"use strict";
// Toggle navigation elements
doc_pos_y = $( document ).scrollTop();
// console.log(doc_pos_y);
// var demo_margin = $('.header__fix');
if (doc_pos_y > scroll_y_margin) {
docPosY = $( document ).scrollTop();
if(docPosY > docInitY){
if(!docInitleft){
$('.js_scrolltop').parent().removeClass('magic');
} else {
$('.js_scrolltop').parent().addClass('magic');
console.info('Initial viewport left');
}
docInitleft = true;
} else {
if(docInitleft){
$('.js_scrolltop').parent().addClass('magic');
console.info('Initial viewport left');
}
docInitleft = false;
}
});

View file

@ -1,16 +1,19 @@
var hippie_brand = "|-| | |^ |^ | [- ";
var hippie = {
brand: "|-| | |^ |^ | [- "
};
var view_width = Math.max(document.documentElement.offsetWidth, document.documentElement.clientWidth, window.innerWidth, 0);
var view_height = Math.max(document.documentElement.clientHeight, window.innerHeight, 0);
var html_height = Math.max(document.documentElement.offsetHeight, document.documentElement.clientHeight, 0);
var body_height = Math.max(document.body.offsetHeight, document.body.clientHeight, 0);
var body_width = Math.max(document.body.offsetWidth, document.body.clientWidth, window.innerWidth, 0);
var viewW = Math.max(document.documentElement.offsetWidth, document.documentElement.clientWidth, window.innerWidth, 0);
var viewH = Math.max(document.documentElement.clientHeight, window.innerHeight, 0);
var htmlH = Math.max(document.documentElement.offsetHeight, document.documentElement.clientHeight, 0);
var bodyW = Math.max(document.body.offsetWidth, document.body.clientWidth, window.innerWidth, 0);
var bodyH = Math.max(document.body.offsetHeight, document.body.clientHeight, 0);
var full_view_hover = true;
var docPosY = 0;
var docInitleft = false;
var docInitY = viewH;
var doc_pos_y = 0;
var basic_ease = 600;
var scroll_y_margin = view_height;
var viewHover = true;
var basicEase = 600;
var onerow_alphabet = "/\\ ]3 ( |) [- /= (_, |-| | _T /< |_ |\\/| |\\| () |^ ()_ /? _\\~ ~|~ |_| \\/ \\/\\/ >< `/ ~/_ ";
var onerow_digits = "\'| ^/_ -} +| ;~ (o \"/ {} \"| (\\) ";
var onerowAlphabet = "/\\ ]3 ( |) [- /= (_, |-| | _T /< |_ |\\/| |\\| () |^ ()_ /? _\\~ ~|~ |_| \\/ \\/\\/ >< `/ ~/_ ";
var onerowDigits = "\'| ^/_ -} +| ;~ (o \"/ {} \"| (\\) ";

View file

@ -10,6 +10,8 @@
{% include "demo/partials/_meta.njk" %}
{% block meta %}{% endblock %}
{% include "hippie/partials/_head_script.njk" %}
{% include "demo/partials/_links.njk" %}
{% block links %}
<link rel="stylesheet" type="text/css" media="all" href="/css/demo.css"/>

View file

@ -10,6 +10,8 @@
{% include "demo/partials/_meta.njk" %}
{% block meta %}{% endblock %}
{% include "hippie/partials/_head_script.njk" %}
{% include "demo/partials/_links.njk" %}
{% block links %}
<!--[if lte IE 9]>

View file

@ -0,0 +1,32 @@
<!-- head.script.partial -->
<script>
//Entry script at page init
// get the current time difference between page
// load and when this func was invoked
function getTimeDiff() {
return new Date().getTime() - performance.timing.navigationStart;
}
var debugOn = true;
var $log, assetsLoaded = false;
function logPerf(msg) {
if (debugOn) {
if (assetsLoaded) {
if (!$('#jslogPerf').length) {
$('body').prepend('<div id="jslogPerf" style="position:fixed;bottom:8px;right:16px;z-index:1000;padding:8px;background:rgb(0,255,255,.5)"></div>')
}
$log = $log || $('#jslogPerf');
$log.append('<p style="margin-bottom:4px;font-size:.75em;"><b>' + getTimeDiff() + '</b>ms :: ' + msg);
}
if (window.console) {
console.log(getTimeDiff() + 'ms :: ' + msg);
if (console.timeStamp){
console.timeStamp(msg);
}
}
}
}
logPerf('On HEAD, starting...');
</script>