Javascript 如何在移动设备上禁用脚本
我有一个具有视差滚动效果的站点,它正在运行skrollr.js脚本。这是一个移动第一网站,但我希望脚本不要在移动设备上运行,因为它不允许滚动。有人知道如何防止脚本在移动设备上运行吗?谢谢 上载脚本的代码位于正文部分的末尾。如果需要任何其他代码,请告诉我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
<!-- 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
。