2015-12-26 2 views
0

J'utilise ce code pour ajouter une classe "show" à mes images, donc quand une personne défile vers le bas, les images s'affichent. Il fonctionne sur le bureau (testé en chrome, avec mousescroll et avec la simulation tactile) mais il ne fonctionne pas en chrome sur les appareils mobiles. Balayer (faire défiler avec le toucher) n'est pas détecté. La page tombe en panne mais les images ne reçoivent pas cela .show. J'utilise ceci à l'intérieur de la page fullpage.js + iscroll.js.Le fondu d'entrée ne fonctionne pas dans le navigateur mobile

Vous pouvez essayer à: http://www.vinarijapantic.com/apps/onePage/project.html

Toutes les idées?

jQuery(document).ready(function($) { 
    function showImages(el) { 
     var windowHeight = jQuery(window).height(); 
     $(el).each(function() { 
      var thisPos = $(this).offset().top; 

      var topOfWindow = $(window).scrollTop(); 
      if (topOfWindow + windowHeight - 250 > thisPos) { 
       $(this).addClass("show"); 
      } 
     }); 
    } 



    /*full page library */ 
    var SCROLLING_SPEED = 600; 
    $('#fullpage').fullpage({ 

     scrollOverflow: true, 
     css3: true, 
     controlArrows: true, 
     loopHorizontal: false, 
     easing: 'easeInOutCubic', 
     easingcss3: 'ease-out', 
     autoScrolling: true, 
     scrollingSpeed: SCROLLING_SPEED, 
     //anchors:['s0', 's1', 's2', 's3'] 
     afterLoad: function(anchorLink, index) { 

     }, 
     afterSlideLoad: function(anchorLink, index, slideAnchor, slideIndex) { 

      if (slideIndex == 0) { 
       $('.slide-' + index).addClass('show'); 
      } else { 
       $('.slide').removeClass('show'); 

      } 
      if ($('.bigScroll').hasClass('active') && $('.bigScroll').closest('.section').hasClass('active')) { 
       console.log($(".bigScroll").height()); 
       showImages('.bigScroll img'); 
       $('.fp-scrollable').scroll(function() { 
        showImages('.bigScroll img'); 
       }); 
      } 
     } 
    }); 
}); 
+0

Qu'est-ce que plugin "FullPage"? – Pointy

+0

bibliothèque, sry ... –

Répondre

0

activer JavaScript sur le web mobile

Il y a des situations où les navigateurs jettent une erreur comme « lors d'une tentative d'accès ------- sur un appareil mobile » cela signifie que le navigateur Web sur votre appareil doit avoir activé JavaScript avant de charger la page.

Pour activer JavaScript, ouvrez le menu des paramètres de votre navigateur Web mobile et recherchez l'option JavaScript.

+0

Je doute très sérieusement que c'est le problème. – Pointy

+0

En effet, js est activé. –

0

Cela ne vaut pas la peine technique de construire votre propre plugin de chargement paresseux (qui est un nom familier pour ce que vous essayez de faire). Utilisez un plugin jQuery ajouté à la place.

Je l'ai utilisé celui-ci avec un grand succès dans le passé: https://github.com/tuupola/jquery_lazyload

Il est vraiment facile à utiliser - il suffit d'ajouter un attribut data à votre balise HTML img et instancier le plug-in avec une simple référence jQuery.

HTML:

<img class="lazy" data-original="img/example.jpg"> 

JS:

$("img.lazy").lazyload(); 
+0

Va essayer de mettre en œuvre avec Iscroll, des suggestions? p.s. Je suis toujours ouvert à différentes solutions, merci pour la suggestion. –

+0

iscroll.js n'est pas quelque chose que j'ai déjà utilisé mais je viens de relire sa documentation (https://github.com/cubiq/iscroll) et elle s'applique uniquement à l'encapsuleur de la section iscroll que vous voulez. Il ne devrait pas interférer avec le chargement paresseux, car ils agissent sur différents éléments et seraient instanciés séparément. – staypuftman