javascript - Hur man inaktiverar ett skript på mobila enheter


Jag har en webbplats som har en parallax-scroll-effekt och den kör skrollr.js-skriptet. Det är en mobilförst-webbplats, men jag skulle vilja att skriptet inte körs på mobila enheter eftersom det inte tillåter rullning. Vet någon hur jag kan hindra skriptet från att köras när jag är på en mobil enhet? Tack.

Koden där skriptet laddas upp finns i slutet av body-sektionen. Om någon annan kod behövs, låt mig veta.

<!-- SCRIPTS -->

<script type="text/javascript" src="js/skrollr.js"></script>
<script type="text/javascript">
    skrollr.init();
</script>

<!--/ SCRIPTS -->

Svar #1

Du kan använda modernizrs touchdetektion för att kontrollera om det är en pekskärmsenhet, och om ja, initiera inte skriptet.

if (Modernizr.touch) {

}
else 
{
    skrollr.init();
}

eller så kan du kolla användaragenten (detta kanske inte är ditt bästa alternativ eftersom användaragenten inte alltid är pålitlig), och skriva en enkel if else, med skrollr-init i else

  var isMobile = {
            Android: function () {
                return navigator.userAgent.match(/Android/i);
            },
            BlackBerry: function () {
                return navigator.userAgent.match(/BlackBerry/i);
            },
            iOS: function () {
                return navigator.userAgent.match(/iPhone|iPad|iPod/i);
            },
            Opera: function () {
                return navigator.userAgent.match(/Opera Mini/i);
            },
            Windows: function () {
                return navigator.userAgent.match(/IEMobile/i);
            },
            any: function () {
                return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
            }
        };

        if (isMobile.any()) {

        }
        else {

             skrollr.init(); 
        }

Ett annat sätt att testa skulle vara genom att kolla window.innerWidth och bara initiera ditt skript om skärmstorleken är större än 760px:

if (window.innerWidth > 760) {
skrollr.init();
}

Svar #2

Anta att du skriver en funktionsnamn exampleNotForMobileDevicese() om fönsterbredden är mindre än 768 då kommer nästa kod inte att köras eftersom vi har använt return, dvs om villkoret uppfylls så kommer körningen att stoppas

function exampleNotForMobileDevicese(){
  if(window.innerwidth < 768){
      return
    }
   your business logics.......

}