1 Eylül 2013 Pazar

Javascript ve css ile loading sayfası yapma

Sayfalar yüklenirken sayfanızın bagımlı oldugu css js dosyaları ve imajlar yuklenmeden sayfanızın gözükmemesini istememeniz yada bu şekilde bir derdiniz olması gerekiyor.

Öncelike basit olara sayfa yuklenene kadar sadece bir loading ikonu -.gif hozukmesi için css html ve java script ile yapılması gerekenler
CSS
 <style type="text/css">
        #dvLoading
        {
            background: url(images/bx_loader.gif) #fff no-repeat center center;
            height: 700px;
            width: 100%;
            position: fixed;
            z-index: 1000;
        }

    </style>
HTML
<body>

    <div id="dvLoading"></div>
Javascript
  window.onload = function(){ document.getElementById("loading").style.display = "none" }

Yeni başlayanlar için kod biraz yabncı gelebilşr fakat javascript normalde gozukur yani display:block yada visible olan bir div i sayfa yuklendiğinde görünmez yapıyor bahsettipimiz div de loading gif ini içeren div imiz.
Bu konuda farklı çözümler bulabilirsinşz ama jquery kullanmadan yapılacak en basit yollardan biri budur.

Biraz daha karmaşık olan durumlarda size ait spesifik durumlarda  mesela  loading arayüzünün bir ajax çağrısı yaptığınızda-herhangi bir işlem yaptıgınızda  -gözükmesini  istiyorsanız şu kodu da yazabilirsiniz
html ve css aynı javascript de şu şekilde bir değişiklik yapılıyor öncelikle gösterme ve gizleme işlemlerini iki ayrı fonksiyon yapıyorum.
function goster(){ document.getElementById("loading").style.display = "block" }
function gizle(){ document.getElementById("loading").style.display = "none" }

yapacagım iş örnek olarak bir butona basıldıgında tetiklensin-başlasın.Bu kısım html  .

<button  onclick="tetikle()" value="testet"/>

<script>
function tetikle(){
goster();
Yapılacak iş yazılır -mesela bir web sayfasnı yükleme vb.
gizle();
}
</script>
Basitleştirirsek işlem başlamadan goster fonksiyonu ile loading div ini visible daha sonra ise  gizle() fonksiyonu  ile invisible yaptım

Eğer jquery kullanıyorsanız

$("#loading").show();
$("#saydanınyukleecegiTag").load(myurl, function() {
  $("#loading").hide();
});
şeklinde de yapabilirsiniz fakat bur da jquery kod miktarını çok da azaltmıyor.

Son ihtimalde jquery mobile kullanımı burda ise işler epeyce bir kolaylaşmış jqmobile de şu kullanım yeterli oluyor
//Loading div ini göster
$.mobile.pageLoading(); //Loading div ini gizle $.mobile.pageLoading( true );




Hiç yorum yok:

Yorum Gönder