Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

Infinite scrolling pour mobile
#5

Voilà le code définitif, si ça peut rendre service à quelqu'un...

la map, fonctionne bien maintenant grace à l'emploi du module cggooglemap2 au lieu du 1.

Code :
[== Indéfini ==]

<script type="text/javascript">

$(document).ready(function(){

   var load = '';
   var resizeload = false;
   var page = 0;
   var url='';    
   var offset = $('footer.footer').offset();
   var lid = '';
   var lurl = '';
   var lpage = '';
   var lload = '';

   var pageurl = "{/literal}{$content_obj->GetURL()}{literal}";
   var url=[];

   {/literal}
   {foreach from=$nodelist item=foo}
   {literal}
     url.push("{/literal}{$foo->url}{literal}");{/literal}
   {/foreach}
   {literal}


function loadpage(lid,lurl,lpage,lload){

   $('.content-inner').append('<article class="content" id="'+lid+'"></div>');    
   $('#'+lid).append('<div class="loader"></div>');
   $.ajax({
         url:lurl,
         dataType:'html',
         data: {txtsearch: $('#main').val()},
         success: function (data) {
            var result = $('<div />').append(data).find('#main').html();
            $('.loader').remove();
            $('#'+lid).append(result);
            offset = $('footer.footer').offset();
            page = lpage;
            load = lload;
         }
   });

}


function mobile(){
   if(page < 1){
      $('.content').remove();
   }
   lid = 'page';
   lurl = url[0];
   lpage = 1;
   lload = false;
   loadpage(lid,lurl,lpage,lload);
}

function screen(){
   $('.content').remove();
   lid = 'main';
   lurl = pageurl;
   lpage = 0;
   lload = true;
   loadpage(lid,lurl,lpage,lload);
}

$(window).resize(function(){
   if($('aside.sidebar').is(':hidden') && resizeload==false){
      resizeload=true;
      mobile();
   }
   if($('aside.sidebar').is(':visible') && resizeload==true){
      resizeload=false;
      screen();
   }
});

if($('aside.sidebar').is(':hidden')){
   $('body').animate({scrollTop:0});
   mobile();
   page = 0;
}

  
$(window).scroll(function(){

   if((offset.top-$(window).height() <= $(window).scrollTop())  && load==false && $('aside.sidebar').is(':hidden') && page < {/literal}{$count}{literal} && page > 0){

      load = true;

      lid = 'page'+page;
      lurl = url[page];
      lpage = page + 1;
      lload = false;
      loadpage(lid,lurl,lpage,lload);
   }        
});

});

</script>
Répondre


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)