Benim bunu uygulamaya çalıştığım site:
http://www.muratdinc.com/ yan menü ve header kısmı her zaman aynı kalıyor bunların tekrar tekrar yüklenmesini engellemek istiyorum.
sidebar ve header-silmek-icin id değişmemesi gerekiyor şeklinde ekledim, değişecek olan ise bende main-content onuda ekledim, şu çok güzel çalışıyor ancak sayfa geçişinde ana sayfada bozulma oldu onun nedeni ne olabilir baktım ancak bulamadım ?
Birde hocam ben yükleniyor efekti olarak örnek verdiğim sitedeki efekti kullanmak istiyorum nasıl değiştirmem gerekiyor kodları ? yani yapmak istediğim örnek sitedekinin aynısı.
</div><div id="yukleniyor" style="display:none;position:fixed;left:0;top:0;width:100%;height:100%;z-index:9999;background:rgba(0,0,0,.6);color:#fff;font-size:26px;text-align:center;padding-top:250px;">Yükleniyor...</div>
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script>
$('#sidebar, #header-silmek-icin').find('a').click(function(){
var link = $(this).attr('href');
history.pushState(null, null, link);
$.icerikDegistir(link);
return false;
});
$.icerikDegistir = function(link){
$('#yukleniyor').fadeIn();
var yeni_icerik = link + ' #main-content > *';
$('#main-content').load(yeni_icerik, function(){
$('#yukleniyor').fadeOut();
});
}
window.onpopstate = function(event) {
$.icerikDegistir(document.location);
};
</script>
Bahsettiğiniz eklenti hakkında bilgim yok. Sitenizdeki sorun; Anasayfada ve Altsayfalarda body'nin class'ının değişmesi. Sayfa yenilenmeyince doğal olarak Anasayfadaki class'lar kalıyor ve CSS'i bozuyor. Şu şekilde değiştirirsen kodları sorun çıkmayacaktır, sayfanın body class'larını alıp aktif sayfaya atıyor.
<div id="yukleniyor" style="display:none;position:fixed;left:0;top:0;width:100%;height:100%;z-index:9999;background:rgba(0,0,0,.6);color:#fff;font-size:26px;text-align:center;padding-top:250px;">Yükleniyor...</div>
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script>
$('#primary-sidebar').find('a').click(function(){ //#primary-sidebar içindeki bir a tag'ına tıklanınca yakaladık
var link = $(this).attr('href'); //a etiketinin gideceği link'ı aldık
history.pushState(null, null, link); // adres barındaki linkin değişmesini sağladık
$.icerikDegistir(link); // aldığımız link değeriyle fonksiyonumuzu çağırdık
return false; // a linkinin belirtilen adrese gitmesini engellemek için
});
$.icerikDegistir = function(link){ // fonksiyonumuz link parametresi alıyor
$('#yukleniyor').fadeIn(); // yükleniyor div'imizi gösterdik
var yeni_icerik = link + ' #content > *'; // link parametresinin sonuna #content > * ekliyor, çünkü sadece #content'in içeriğini almak istiyoruz
$('#content').load(yeni_icerik, function(response){
var regex = /<body class="(.*?)"/ig;
var classList = regex.exec(response);
$('body').attr('class', classList[1]);
$('#yukleniyor').fadeOut(); // yükleniyor div'imizi gizledik, çünkü yüklenme işlemi tamamlandı
}); // belirttiğimiz içeriği #content'in içine yükledik
}
window.onpopstate = function(event) { // tarayıcıdan geri butonuna basıldığında içeriğin değişmesi için
$.icerikDegistir(document.location);
};
</script>