MediaWiki:Common.js: відмінності між версіями
Admin (обговорення | внесок) Немає опису редагування |
Admin (обговорення | внесок) Немає опису редагування |
||
| Рядок 22: | Рядок 22: | ||
}); | }); | ||
}); | }); | ||
$(function() { | $(function() { | ||
var items = $('.l-box-item'); | var items = $('.l-box-item'); | ||
| Рядок 27: | Рядок 28: | ||
items.each(function() { | items.each(function() { | ||
var | var target = $(this).data('target'); | ||
if ( | if (target === 'top') { | ||
sections.push({item: $(this), target: null, offset: 0}); | |||
var | } else { | ||
if ( | var el = document.getElementById(target); | ||
sections.push({item: $(this), target: $( | if (el) { | ||
sections.push({item: $(this), target: $(el), offset: $(el).offset().top}); | |||
} | } | ||
} | } | ||
}); | |||
items.on('click', function() { | |||
var target = $(this).data('target'); | |||
var scrollTo = 0; | |||
if (target === 'top') { | |||
scrollTo = 0; | |||
} else { | |||
var el = document.getElementById(target); | |||
if (el) { | |||
scrollTo = $(el).offset().top - 40; | |||
} | |||
} | |||
$('html, body').animate({scrollTop: scrollTo}, 300); | |||
}); | }); | ||
| Рядок 42: | Рядок 60: | ||
for (var i = 0; i < sections.length; i++) { | for (var i = 0; i < sections.length; i++) { | ||
var checkPos = sections[i].target ? sections[i].target.offset().top : 0; | |||
if (checkPos <= scrollPos) { | |||
current = sections[i].item; | current = sections[i].item; | ||
} | } | ||
| Рядок 52: | Рядок 71: | ||
} | } | ||
}); | }); | ||
$(window).trigger('scroll'); | |||
}); | }); | ||
Версія за 19:51, 8 грудня 2025
$(document).ready(function() {
var apiUrl = mw.config.get('wgScriptPath') + '/api.php';
$.getJSON(apiUrl, {
action: 'query',
format: 'json',
list: 'random',
rnnamespace: '0',
rnlimit: '5', // fetch five random articles
prop: 'extracts',
exchars: '250', // limit the preview to 250 characters
exlimit: 'max',
explaintext: true
}, function(data) {
var html = '';
$.each(data.query.random, function(i, article) {
html += '<div class="random-article-preview">';
html += '<h2><a href="/wiki/' + encodeURIComponent(article.title) + '">' + article.title + '</a></h2>';
html += '<p>' + article.extract + '</p>';
html += '</div>';
});
$('#random-articles-container').html(html);
});
});
$(function() {
var items = $('.l-box-item');
var sections = [];
items.each(function() {
var target = $(this).data('target');
if (target === 'top') {
sections.push({item: $(this), target: null, offset: 0});
} else {
var el = document.getElementById(target);
if (el) {
sections.push({item: $(this), target: $(el), offset: $(el).offset().top});
}
}
});
items.on('click', function() {
var target = $(this).data('target');
var scrollTo = 0;
if (target === 'top') {
scrollTo = 0;
} else {
var el = document.getElementById(target);
if (el) {
scrollTo = $(el).offset().top - 40;
}
}
$('html, body').animate({scrollTop: scrollTo}, 300);
});
$(window).on('scroll', function() {
var scrollPos = $(window).scrollTop() + 100;
var current = null;
for (var i = 0; i < sections.length; i++) {
var checkPos = sections[i].target ? sections[i].target.offset().top : 0;
if (checkPos <= scrollPos) {
current = sections[i].item;
}
}
items.removeClass('active');
if (current) {
current.addClass('active');
}
});
$(window).trigger('scroll');
});