MediaWiki:Common.js: Difference between revisions
Appearance
m Require div.dialogue-thread |
Streamlined coding for hints Tag: Reverted |
||
| Line 3: | Line 3: | ||
/* Custom animated collapsibles: */ | /* Custom animated collapsibles: */ | ||
$(document).ready(function() { | |||
$('.custom-collapsible-link').on('click', function() { | |||
$parentSp = $(this).parent('.custom-collapsible'); | |||
if ($parentSp.hasClass('active')) { | |||
// hide | |||
$parentSp.removeClass('active'); | |||
$parentSp.next('.custom-collapsible-content').slideUp(200); | |||
} else { | |||
// show | |||
$parentSp.addClass('active'); | |||
$parentSp.next('.custom-collapsible-content').slideDown(200); | |||
} | |||
}); | }); | ||
} | }); | ||
Revision as of 12:07, 25 November 2023
/* Any JavaScript here will be loaded for all users on every page load. */
/* Custom animated collapsibles: */
$(document).ready(function() {
$('.custom-collapsible-link').on('click', function() {
$parentSp = $(this).parent('.custom-collapsible');
if ($parentSp.hasClass('active')) {
// hide
$parentSp.removeClass('active');
$parentSp.next('.custom-collapsible-content').slideUp(200);
} else {
// show
$parentSp.addClass('active');
$parentSp.next('.custom-collapsible-content').slideDown(200);
}
});
});
/* Custom hex strings */
var hss = document.getElementsByClassName("hex-string");
var i;
for (i = 0; i < hss.length; i++) {
hss[i].addEventListener("click", function() {
if (this.dataset.state === 'hex') {
// Switch to English
this.querySelector('.hex-string-content').innerText = this.dataset.text;
this.dataset.state = 'text';
} else {
// Switch to Hex
this.querySelector('.hex-string-content').innerText = this.dataset.hex;
this.dataset.state = 'hex';
}
});
}
/* Custom collapsibles for social media thread */
$(document).ready(function() {
var depth;
var stillCollapsing, stillExpanding;
// Attach the click event
$('div.dialogue-thread span.dialogue-choice-button').on('click', chooseDialogue);
// Hide initially
$('div.dialogue-thread ul').each(initialDeepHide);
function initialDeepHide() {
if ($(this).is('ul')) {
$(this).children('li').each(initialDeepHide);
}
else if ($(this).is('li')) {
if ($(this).children('ul').length) {
$(this).children('ul').each(initialDeepHide);
} else {
myDepth = 1 + $(this).parents('li').length;
if (myDepth > 1) { $(this).hide(); }
}
}
}
function deepCollapse() {
if ($(this).is('ul')) {
$(this).children('li').each(deepCollapse);
}
else if ($(this).is('li')) {
if ($(this).children('ul').length) {
$(this).children('ul').each(deepCollapse);
} else {
myDepth = 1 + $(this).parents('li').length;
if (myDepth <= depth) { stillCollapsing = false; }
if (stillCollapsing) {
$(this).slideUp();
// Also set any sub-options to be collapsed
$(this).find('span.dialogue-choice-button').data('collapsed', true).text('Expand');
}
}
}
}
function deepExpand() {
if ($(this).is('ul')) {
$(this).children('li').each(deepExpand);
}
else if ($(this).is('li')) {
if ($(this).children('ul').length) {
$(this).children('ul').each(deepExpand);
} else {
myDepth = 1 + $(this).parents('li').length;
if (myDepth <= depth) { stillExpanding = false; }
if (stillExpanding && myDepth == depth+1) { $(this).slideDown(); }
}
}
}
function chooseDialogue() {
var $topLevelUl = $(this).parents('li').last().parent('ul');
depth = 1 + $(this).parent('li').parents('li').length;
//$topLevelUl.nextAll('ul').each(diveDeepUl);
if ($(this).data('collapsed') === true) {
$(this).data('collapsed', false);
$(this).text('Collapse');
stillExpanding = true;
$topLevelUl.nextAll('ul').each(deepExpand);
} else {
$(this).data('collapsed', true);
$(this).text('Expand');
stillCollapsing = true;
$topLevelUl.nextAll('ul').each(deepCollapse);
}
}
});