184
edits
(Add Navigation_popups) |
(do you not like let) |
||
(26 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
/* Any JavaScript here will be loaded for all users on every page load. */ | /* 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(); | |||
} | |||
} |