مدیاویکی:Common.js: تفاوت بین نسخهها
از ولایت حضرت علی و حضرت زهرا
(بدون تفاوت)
|
نسخهٔ کنونی تا ۱۰ نوامبر ۲۰۲۳، ساعت ۱۱:۴۵
/* Any JavaScript here will be loaded for all users on every page load. */
$(function () {
var targets = $('[rel~=tooltip]'),
target = false,
tooltip = false,
title = false;
targets.bind('mouseenter', function () {
target = $(this);
tip = target.attr('title');
tooltip = $('<div id="tooltip"></div>');
if (!tip || tip == '')
return false;
target.removeAttr('title');
tooltip.css('opacity', 0)
.html(tip)
.appendTo('body');
var init_tooltip = function () {
if ($(window).width() < tooltip.outerWidth() * 1.5)
tooltip.css('max-width', $(window).width() / 2);
else
tooltip.css('max-width', 340);
var pos_left = target.offset().left + (target.outerWidth() / 2) - (tooltip.outerWidth() / 2),
pos_top = target.offset().top - tooltip.outerHeight() - 20;
if (pos_left < 0) {
pos_left = target.offset().left + target.outerWidth() / 2 - 20;
tooltip.addClass('left');
}
else
tooltip.removeClass('left');
if (pos_left + tooltip.outerWidth() > $(window).width()) {
pos_left = target.offset().left - tooltip.outerWidth() + target.outerWidth() / 2 + 20;
tooltip.addClass('right');
}
else
tooltip.removeClass('right');
if (pos_top < 0) {
var pos_top = target.offset().top + target.outerHeight();
tooltip.addClass('top');
}
else
tooltip.removeClass('top');
tooltip.css({ left: pos_left, top: pos_top })
.animate({ top: '+=10', opacity: 1 }, 50);
};
init_tooltip();
$(window).resize(init_tooltip);
var remove_tooltip = function () {
tooltip.animate({ top: '-=10', opacity: 0 }, 50, function () {
$(this).remove();
});
target.attr('title', tip);
};
target.bind('mouseleave', remove_tooltip);
tooltip.bind('click', remove_tooltip);
});
});
$('.col-lg-9').removeClass('col')
$('.col-lg-3').removeClass('col')
function showSujects(subjectClass, title) {
// Get all the elements with the class "subjects"
var subjects = $(subjectClass);
// Create an empty list to hold the IDs of the selected elements
var selectedTitles = [];
var selectedIds = [];
var types = [];
// Loop through each element with the class "subjects"
subjects.each(function () {
// Get the ID of the current element
var currentTitle = $(this).attr('data-headline');
var currentId = $(this).attr('id');
// Add the ID to the list of selected IDs
selectedTitles.push(currentTitle);
selectedIds.push(currentId);
types.push($(this).hasClass('minutes'))
});
if (selectedTitles.length === 0) {
return
}
// console.log('selecting subjects')
// Loop through the selected IDs and create a new div for each one
var headlines = [];
for (var i = 0; i < selectedTitles.length; i++) {
var tocWrapper = '';
var id = parseInt(selectedIds[i]);
console.log(id);
if (types[i])
tocWrapper = $("<div class='tocMinuts'></div>");
else
tocWrapper = $("<li></li>");
var newDiv = $("<a class='subjectToc' href='#" + selectedIds[i] + "'></a>");
newDiv.text(selectedTitles[i]);
tocWrapper.append(newDiv);
headlines.push(tocWrapper);
}
// Wrap all the new divs in a specific div with the ID "new-div-container"
var headLineContainer = $("<div></div>");
headLineContainer.addClass("infobox mw-collapsible");
headLineContainer.css("width", "22em");
var ToggleSpan = $("<span >" + title + "</span>")
var headLineWrapper = $("<ol></ol>");
headLineWrapper.addClass("headWrapperSubjects");
headLineWrapper.addClass("mw-collapsible-content");
headLineWrapper.append(headlines);
headLineContainer.append(ToggleSpan);
headLineContainer.append(headLineWrapper);
// Add the new div container after the table with the ID "my-table"
$(".infobox.vcard").after(headLineContainer);
}
showSujects('.subjects, .minutes', 'موضوعات');
//showSujects('minutes', 'دقایق سخنرانی')