MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
m (or not, maybe this will?) |
(WHY IS THE JAVASCRIPT PARSER 6 YEARS OLD - in other news, I fixed it) |
||
Line 2: | Line 2: | ||
// Even More fancy hovers for recipes | // Even More fancy hovers for recipes | ||
$(function() { | $(function () { | ||
// Tooltip only Text | // Tooltip only Text | ||
$('.masterTooltip').hover(function() { | $('.masterTooltip').hover( | ||
function () { | |||
// Hide non-JS | // Hide non-JS | ||
$(this).data('tipText', $(this).attr('title')).removeAttr('title'); | $(this).data('tipText', $(this).attr('title')).removeAttr('title'); | ||
Line 11: | Line 12: | ||
var title = $(this).attr('data-title'); | var title = $(this).attr('data-title'); | ||
var lore = $(this).attr('data-lore'); | var lore = $(this).attr('data-lore'); | ||
var tooltip = '<p class="tooltip">' + parseFormatCodes(title) | var tooltip = '<p class="tooltip">' + parseFormatCodes(title); | ||
if (lore) tooltip += '<br><span class="lore format-5">' + parseFormatCodes(lore) + '</span>' | if (lore) tooltip += '<br><span class="lore format-5">' + parseFormatCodes(lore) + '</span>'; | ||
tooltip += '</p>' | tooltip += '</p>'; | ||
$(tooltip).appendTo('body'); | $(tooltip).appendTo('body'); | ||
}, | }, | ||
function() { | function () { | ||
// Hover out | // Hover out | ||
$('.tooltip').remove(); | $('.tooltip').remove(); | ||
}).mousemove(function(e) { | }).mousemove( | ||
function (e) { | |||
var mousex = e.pageX + 20; //Get X coordinates | |||
var mousey = e.pageY - 40; //Get Y coordinates | |||
$('.tooltip').css({ | |||
top: mousey, | |||
left: mousex, | |||
}); | |||
}); | |||
// Hide the stupid empty newlines after crafting grids | // Hide the stupid empty newlines after crafting grids | ||
$('.crafting + p br:only-child').parent().hide(); | $('.crafting + p br:only-child').parent().hide(); | ||
Line 32: | Line 34: | ||
//Code For books | //Code For books | ||
$('.pageactive').each((_, page) | $('.pageactive').each(function (_, page) { | ||
setupPage($(page)); | setupPage($(page)); | ||
}); | }); | ||
$('.book_leftarrow').click(function() { | $('.book_leftarrow').click(function () { | ||
setupPage($(this).siblings('.pageactive').removeClass('pageactive').prev()); | |||
}); | }); | ||
$('.book_rightarrow').click(function() { | $('.book_rightarrow').click(function () { | ||
setupPage($(this).siblings('.pageactive').removeClass('pageactive').next()); | |||
}); | }); | ||
}); | }); | ||
function parseFormatCodes(text) { | function parseFormatCodes (text) { | ||
var spans = 0; | var spans = 0; | ||
var res = '' | var res = ''; | ||
for (var i = 0; i < text.length; i++) { | for (var i = 0; i < text.length; i++) { | ||
if ((text[i] == '&') && /[0-9a-fl-or]/.test(text[i + 1])) continue; | if ((text[i] == '&') && /[0-9a-fl-or]/.test(text[i + 1])) continue; | ||
Line 64: | Line 57: | ||
else if ((text[i - 1] == '&') && /[0-9a-fl-or]/.test(text[i])) { | else if ((text[i - 1] == '&') && /[0-9a-fl-or]/.test(text[i])) { | ||
if (text[i] == 'r') { | if (text[i] == 'r') { | ||
res += | res += '</span>'.repeat(spans); | ||
spans = 0; | spans = 0; | ||
} else { | } else { | ||
Line 72: | Line 65: | ||
} else res += text[i]; | } else res += text[i]; | ||
} | } | ||
return res + | return res + '</span>'.repeat(spans); | ||
} | } | ||
function setupPage(active) { | function setupPage (active) { | ||
active.addClass('pageactive'); | active.addClass('pageactive'); | ||
var index = active.index(); | |||
var length = active.siblings().length - 2; | |||
active.siblings('.book_pagenum').text('Page ' + index + ' of ' + length); | active.siblings('.book_pagenum').text('Page ' + index + ' of ' + length); | ||
active.siblings('.book_leftarrow, .book_rightarrow').show(); | active.siblings('.book_leftarrow, .book_rightarrow').show(); |
Revision as of 18:13, 15 February 2021
/* Any JavaScript here will be loaded for all users on every page load. */
// Even More fancy hovers for recipes
$(function () {
// Tooltip only Text
$('.masterTooltip').hover(
function () {
// Hide non-JS
$(this).data('tipText', $(this).attr('title')).removeAttr('title');
//Custom Tooltip
var title = $(this).attr('data-title');
var lore = $(this).attr('data-lore');
var tooltip = '<p class="tooltip">' + parseFormatCodes(title);
if (lore) tooltip += '<br><span class="lore format-5">' + parseFormatCodes(lore) + '</span>';
tooltip += '</p>';
$(tooltip).appendTo('body');
},
function () {
// Hover out
$('.tooltip').remove();
}).mousemove(
function (e) {
var mousex = e.pageX + 20; //Get X coordinates
var mousey = e.pageY - 40; //Get Y coordinates
$('.tooltip').css({
top: mousey,
left: mousex,
});
});
// Hide the stupid empty newlines after crafting grids
$('.crafting + p br:only-child').parent().hide();
//Code For books
$('.pageactive').each(function (_, page) {
setupPage($(page));
});
$('.book_leftarrow').click(function () {
setupPage($(this).siblings('.pageactive').removeClass('pageactive').prev());
});
$('.book_rightarrow').click(function () {
setupPage($(this).siblings('.pageactive').removeClass('pageactive').next());
});
});
function parseFormatCodes (text) {
var spans = 0;
var res = '';
for (var i = 0; i < text.length; i++) {
if ((text[i] == '&') && /[0-9a-fl-or]/.test(text[i + 1])) continue;
else if (text[i] == '/') {
res += '<br>';
continue;
}
else if ((text[i - 1] == '&') && /[0-9a-fl-or]/.test(text[i])) {
if (text[i] == 'r') {
res += '</span>'.repeat(spans);
spans = 0;
} else {
res += '<span class="format-' + text[i] + '">';
spans++;
}
} else res += text[i];
}
return res + '</span>'.repeat(spans);
}
function setupPage (active) {
active.addClass('pageactive');
var index = active.index();
var length = active.siblings().length - 2;
active.siblings('.book_pagenum').text('Page ' + index + ' of ' + length);
active.siblings('.book_leftarrow, .book_rightarrow').show();
if (index == 1) {
active.siblings('.book_leftarrow').hide();
}
if (index == length) {
active.siblings('.book_rightarrow').hide();
}
}