MediaWiki:Common.js: Perbedaan antara revisi
Tampilan
Wikisporta (bicara | kontrib) Tidak ada ringkasan suntingan Tanda: Suntingan perangkat seluler Suntingan peramban seluler |
Wikisporta (bicara | kontrib) Tidak ada ringkasan suntingan Tanda: Suntingan perangkat seluler Suntingan peramban seluler |
||
| Baris 10: | Baris 10: | ||
}).first().each(function () { | }).first().each(function () { | ||
var $link = $(this); | var $link = $(this); | ||
var $ | var $paragraph = $link.closest('p'); | ||
if ($ | if ($paragraph.length && !$paragraph.hasClass('mp-processed')) { | ||
$ | $paragraph.addClass('mp-processed'); | ||
var articleUrl = $link.attr('href'); // Ambil URL artikel asli | var articleUrl = $link.attr('href'); // Ambil URL artikel asli | ||
// | // Ubah teks link menjadi "Baca selengkapnya...." | ||
$link.text('Baca selengkapnya....'); | |||
$ | $link.addClass('featured-readmore-link'); | ||
// | // Ambil isi teks paragraf, lalu pisahkan link dari teks utama | ||
var $linkClone = $link.clone(); | |||
var | $link.remove(); // Hapus link dari posisi asli di paragraf | ||
var textHtml = $paragraph.html(); // Sisa teks artikel | |||
var | |||
var | // Bungkus teks ke dalam kontainer lipatan | ||
var $collapsibleDiv = $('<div>', { | |||
'class': 'mp-collapsible-text', | |||
'html': textHtml | |||
}); | |||
// | // Bungkus link di dalam wrapper bawah | ||
$ | var $wrapperDiv = $('<div>', { | ||
'class': 'mp-readmore-wrapper' | |||
}); | |||
$wrapperDiv.append($linkClone); | |||
// Susun ulang struktur HTML di dalam paragraf | |||
$paragraph.empty().append($collapsibleDiv).append($wrapperDiv); | |||
var isExpanded = false; | var isExpanded = false; | ||
// Handle Klik dengan Animasi Mulus | // Handle Klik dengan Animasi Mulus | ||
$ | mw.loader.using('mediawiki.util', function () { | ||
$wrapperDiv.on('click', 'a', function (e) { | |||
if (!isExpanded) { | |||
// KLIK PERTAMA: Buka lipatan teks dengan animasi halus ke bawah | |||
e.preventDefault(); | |||
isExpanded = true; | |||
$collapsibleDiv.addClass('is-expanded'); | |||
} else { | |||
// KLIK KEDUA: Langsung arahkan ke halaman artikel asli | |||
window.location.href = articleUrl; | |||
} | |||
}); | |||
}); | }); | ||
} | } | ||
}); | }); | ||
}); | }); | ||
Revisi per 17 Oktober 2026 04.35
mw.hook('wikipage.content').add(function ($content) {
// KHUSUS HALAMAN UTAMA
if (!mw.config.get('wgIsMainPage')) {
return;
}
// Cari link bawaan template yang berisi kata "Selengkapnya"
$content.find('a').filter(function () {
return $(this).text().indexOf('Selengkapnya') !== -1;
}).first().each(function () {
var $link = $(this);
var $paragraph = $link.closest('p');
if ($paragraph.length && !$paragraph.hasClass('mp-processed')) {
$paragraph.addClass('mp-processed');
var articleUrl = $link.attr('href'); // Ambil URL artikel asli
// Ubah teks link menjadi "Baca selengkapnya...."
$link.text('Baca selengkapnya....');
$link.addClass('featured-readmore-link');
// Ambil isi teks paragraf, lalu pisahkan link dari teks utama
var $linkClone = $link.clone();
$link.remove(); // Hapus link dari posisi asli di paragraf
var textHtml = $paragraph.html(); // Sisa teks artikel
// Bungkus teks ke dalam kontainer lipatan
var $collapsibleDiv = $('<div>', {
'class': 'mp-collapsible-text',
'html': textHtml
});
// Bungkus link di dalam wrapper bawah
var $wrapperDiv = $('<div>', {
'class': 'mp-readmore-wrapper'
});
$wrapperDiv.append($linkClone);
// Susun ulang struktur HTML di dalam paragraf
$paragraph.empty().append($collapsibleDiv).append($wrapperDiv);
var isExpanded = false;
// Handle Klik dengan Animasi Mulus
mw.loader.using('mediawiki.util', function () {
$wrapperDiv.on('click', 'a', function (e) {
if (!isExpanded) {
// KLIK PERTAMA: Buka lipatan teks dengan animasi halus ke bawah
e.preventDefault();
isExpanded = true;
$collapsibleDiv.addClass('is-expanded');
} else {
// KLIK KEDUA: Langsung arahkan ke halaman artikel asli
window.location.href = articleUrl;
}
});
});
}
});
});