Tanda: Suntingan perangkat seluler Suntingan peramban seluler |
Tanda: Pengosongan Pengembalian manual Suntingan perangkat seluler Suntingan peramban seluler |
| (5 revisi perantara oleh pengguna yang sama tidak ditampilkan) |
| Baris 1: |
Baris 1: |
| 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;
| |
| }
| |
| });
| |
| });
| |
| }
| |
| });
| |
| });
| |