Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在移动设备上禁用脚本_Javascript_Jquery_Html_Css_Mobile - Fatal编程技术网

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

Javascript 如何在移动设备上禁用脚本,javascript,jquery,html,css,mobile,Javascript,Jquery,Html,Css,Mobile,我有一个具有视差滚动效果的站点,它正在运行skrollr.js脚本。这是一个移动第一网站,但我希望脚本不要在移动设备上运行,因为它不允许滚动。有人知道如何防止脚本在移动设备上运行吗?谢谢 上载脚本的代码位于正文部分的末尾。如果需要任何其他代码,请告诉我 <!-- SCRIPTS --> <script type="text/javascript" src="js/skrollr.js"></script> <script type="text/java

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

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

<!-- SCRIPTS -->

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

<!--/ SCRIPTS -->

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

if (Modernizr.touch) {

}
else 
{
    skrollr.init();
}
或者您可以检查用户代理(这可能不是您的最佳选择,因为用户代理并不总是可靠的),然后编写一个简单的if-else,并在else中使用skrollr init

  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(); 
        }
另一种测试方法是检查
window.innerWidth
,如果屏幕大小大于760px,则仅初始化脚本:

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

假设您正在编写函数名
exampleNotFormobileDevices()
如果窗口宽度小于768,则下一个代码不会执行,因为我们使用了return,即如果条件满足,则执行将停止

函数exampleNotFormobileDevices(){
如果(窗内宽度<768){
返回
}
您的业务逻辑。。。。。。。

}
您是否正在使用一些检测库,如
Modernizer
?可能在给定容器上执行一些css媒体查询。这里的所有解决方案都在谈论移动设备===小浏览器窗口。也许我们应该问他是否真的意味着没有移动设备或只是没有小屏幕,如果不是移动设备,移动设备是否包括平板电脑。@MelanciaUK-我试图比这更具建设性,但确实如此。:)“让javascript检查它是否在手机上”。。。人有这么多的错误,不要以为“触摸设备”等于“小屏幕”。@Blazemonger是真的,这将不会对这个设备产生预期的效果。你能想到更好的解决方案吗?“移动设备”对我来说意味着“小屏幕”,比如小于760像素宽的屏幕。测试
窗口。改为innerWidth