如何在移动设备上禁用脚本

Vee*_*ech 5 html javascript css mobile jquery

我有一个具有视差滚动效果的网站,它正在运行skrollr.js脚本.这是一个移动的第一个网站,但我希望脚本不能在移动设备上运行,因为它不允许滚动.有谁知道如何阻止脚本在移动设备上运行?谢谢.

上载脚本的代码位于正文部分的末尾.如果需要任何其他代码,请告诉我.

<!-- SCRIPTS -->

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

<!--/ SCRIPTS -->
Run Code Online (Sandbox Code Playgroud)

chr*_*con 7

您可以使用modernizr的触摸检测来检查它是否是触摸设备,如果是,则不要初始化脚本.

if (Modernizr.touch) {

}
else 
{
    skrollr.init();
}
Run Code Online (Sandbox Code Playgroud)

或者您可以检查用户代理(这可能不是您的最佳选择,因为用户代理并不总是可靠的),并在else中使用skrollr init编写一个简单的if 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(); 
        }
Run Code Online (Sandbox Code Playgroud)

另一种测试方法是检查window.innerWidth并仅在屏幕大小大于760px时初始化脚本:

if (window.innerWidth > 760) {
skrollr.init();
}
Run Code Online (Sandbox Code Playgroud)

  • 不要假设“触摸设备”等于“小屏幕”。 (2认同)