Loading Bar

Masalah yang biasanya sulit dipecahkan adalah tentang cara menyeleksi elemen berupa link internal. Sampai beberapa saat yang lalu Saya menemukan ini.

Berikut ini adalah langkah singkat untuk membuatnya:

Salin kode CSS ini, letakkan di atas kode ]]></b:skin> atau </style>:

#page-loader {
  position:fixed;
  top:0;
  left:0;
  background-color:#fff;
  z-index:9999;
  text-align:center;
  width:100%;
  height:100%;
  padding-top:70px;
  font:bold 50px Calibri,Arial,Sans-Serif;
  color:#000;
  display:none;
}

Kemudian tambahkan kode ini di atas </body>:

<div id='page-loader'>Loading...</div>

Setelah itu buat fungsi JQuery sederhana dengan bantuan script untuk menemukan link internal:

$(function() {
    var siteURL = "http://" + top.location.host.toString();
    var $internalLinks = $("a[href^='"+siteURL+"'], a[href^='/'], a[href^='./'], a[href^='../'], a[href^='#']");
    $internalLinks.click(function() {
        $('#page-loader').fadeIn(1500).delay(6000).fadeOut(1000);
    });

    // Hilangkan overlay saat diklik untuk mengatasi gangguan, terutama jika link internal diset dengan target='_blank'
    $('#page-loader').click(function() {
        $(this).hide();
    });
});

Letakkan script tersebut di atas kode </head>

Klik simpan dan coba muat ulang halaman blogmu, kemudian coba klik salah satu link internal di dalam blogmu dan lihat apa yang akan terjadi...


Tambahan:

Jika Anda pemakai JQuery versi di bawah 1.4.0, Anda harus menambahkan plugin delay sebelum menjalankan fungsi .delay() karena fungsi .delay() pada JQuery hanya terdapat pada JQuery versi 1.4 dan di atasnya:

Plugin Delay untuk JQuery versi 1.4-

$.fn.delay = function(time, callback) {
    // Empty function:
    jQuery.fx.step.delay = function(){};
    // Return meaningless animation, (will be added to queue)
    return this.animate({delay:1}, time, callback);
}


EmoticonEmoticon