MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
(oh) |
(do you not like let) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 46: | Line 46: | ||
}); | }); | ||
//Code for Cycling | |||
$('.cyclist > :not(:first-child)').hide(); | |||
setInterval(function() { | |||
if (!!$('.cyclist').filter(function() { return $(this).is(":hover"); }).length) return; | |||
$('.cyclist > :not(:hidden)').hide().each(function() { | |||
var elem = $(this); | |||
elem.next().show(); | |||
if (elem.is(':last-child')) elem.siblings().first().show(); | |||
}); | |||
}, 2000); | |||
}); | }); | ||
Line 52: | Line 63: | ||
var res = ''; | var res = ''; | ||
for (var i = 0; i < text.length; i++) { | for (var i = 0; i < text.length; i++) { | ||
if | if (text[i] == '\\') { | ||
else if (text[i] == '/') { | res += text[i+1]; | ||
i++; | |||
} else if (/&[0-9a-fl-o]/.test(text.substring(i,i+2))) { | |||
res += '<span class="format-' + text[i+1] + '">'; | |||
spans++; | |||
i++; | |||
} else if (text.substring(i,i+2) == '&r') { | |||
res += '</span>'.repeat(spans); | |||
spans = 0; | |||
i++; | |||
} else if (/&#[0-9A-Fa-f]{6}/.test(text.substring(i,i+8))) { | |||
res += '<span style="color: ' + text.substring(i+1,i+8) + '">'; | |||
spans++; | |||
i += 7; | |||
} else if (text[i] == '/') { | |||
res += '<br>'; | res += '<br>'; | ||
} else { | |||
res += text[i]; | |||
} | } | ||
} | } | ||
return res + '</span>'.repeat(spans); | return res + '</span>'.repeat(spans); | ||
} | } |
Latest revision as of 23:50, 7 August 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;
var mousey = e.pageY - 40;
var tooltip = $('.tooltip');
if (mousex + tooltip.width() >= $(window).width()) mousex -= tooltip.width() + 40;
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());
});
//Code for Cycling
$('.cyclist > :not(:first-child)').hide();
setInterval(function() {
if (!!$('.cyclist').filter(function() { return $(this).is(":hover"); }).length) return;
$('.cyclist > :not(:hidden)').hide().each(function() {
var elem = $(this);
elem.next().show();
if (elem.is(':last-child')) elem.siblings().first().show();
});
}, 2000);
});
function parseFormatCodes (text) {
var spans = 0;
var res = '';
for (var i = 0; i < text.length; i++) {
if (text[i] == '\\') {
res += text[i+1];
i++;
} else if (/&[0-9a-fl-o]/.test(text.substring(i,i+2))) {
res += '<span class="format-' + text[i+1] + '">';
spans++;
i++;
} else if (text.substring(i,i+2) == '&r') {
res += '</span>'.repeat(spans);
spans = 0;
i++;
} else if (/&#[0-9A-Fa-f]{6}/.test(text.substring(i,i+8))) {
res += '<span style="color: ' + text.substring(i+1,i+8) + '">';
spans++;
i += 7;
} else if (text[i] == '/') {
res += '<br>';
} 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();
}
}