Lompat ke isi

MediaWiki:Common.js: Perbedaan antara revisi

Dari Wikisporta, ensiklopedia olahraga
Tidak ada ringkasan suntingan
Tanda: Suntingan perangkat seluler Suntingan peramban seluler
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 $container = $link.closest('p'); // Paragraf teks artikel unggulan
         var $paragraph = $link.closest('p');


         if ($container.length && !$container.hasClass('mp-processed')) {
         if ($paragraph.length && !$paragraph.hasClass('mp-processed')) {
             $container.addClass('mp-featured-paragraph mp-processed');
             $paragraph.addClass('mp-processed');


             var articleUrl = $link.attr('href'); // Ambil URL artikel asli
             var articleUrl = $link.attr('href'); // Ambil URL artikel asli


             // Ambil teks bersih dari paragraf tanpa link
             // Ubah teks link menjadi "Baca selengkapnya...."
            var $clone = $container.clone();
             $link.text('Baca selengkapnya....');
             $clone.find('a').remove();
             $link.addClass('featured-readmore-link');
             var fullText = $clone.text().trim();


             // Batasi karakter untuk tampilan awal (sekitar 3 baris)
             // Ambil isi teks paragraf, lalu pisahkan link dari teks utama
            var charLimit = 135;
             var $linkClone = $link.clone();
             var truncatedText = fullText.length > charLimit ? fullText.substring(0, charLimit).trim() + '...' : fullText;
             $link.remove(); // Hapus link dari posisi asli di paragraf
             var remainingText = fullText.length > charLimit ? fullText.substring(charLimit) : '';


            // Buat HTML dengan teks baru "Baca selengkapnya...."
             var textHtml = $paragraph.html(); // Sisa teks artikel
             var linkHtml = '<a class="featured-readmore-link" href="' + articleUrl + '">Baca selengkapnya....</a>';


             var collapsedHtml = '<span class="mp-text-main">' + truncatedText + ' </span>' +
            // Bungkus teks ke dalam kontainer lipatan
                                '<span class="mp-text-extra" style="display:none;">' + remainingText + ' </span>' +
             var $collapsibleDiv = $('<div>', {
                                linkHtml;
                'class': 'mp-collapsible-text',
                'html': textHtml
            });


             // Render ke dalam paragraf
             // Bungkus link di dalam wrapper bawah
             $container.html(collapsedHtml);
            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
             $container.on('click', '.featured-readmore-link', function (e) {
             mw.loader.using('mediawiki.util', function () {
                if (!isExpanded) {
                $wrapperDiv.on('click', 'a', function (e) {
                    e.preventDefault();
                    if (!isExpanded) {
                    isExpanded = true;
                        // KLIK PERTAMA: Buka lipatan teks dengan animasi halus ke bawah
 
                        e.preventDefault();
                    // KLIK PERTAMA: Munculkan sisa teks dengan animasi fade-in yang halus
                        isExpanded = true;
                    var $extra = $container.find('.mp-text-extra');
                        $collapsibleDiv.addClass('is-expanded');
                     $extra.css({ display: 'inline', opacity: 0 }).animate({ opacity: 1 }, 400);
                     } else {
                }
                        // KLIK KEDUA: Langsung arahkan ke halaman artikel asli
                // KLIK KEDUA: Otomatis mengarahkan 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;
                    }
                });
            });
        }
    });
});