移动端手机页面开发,弹出层页面需要屏蔽背景层上下滑动效果,安卓跟ios需要单独适配,没有统一代码适配两种设备。

top: 0,
enableScroll: function (b, res) {
if (b) {
if (this.getSystemOS() == "ios") {
$('body')[0].style.overflow = "hidden";
this.overscroll($("#" + res)[0]);
} else {
this.top = $(window).scrollTop();//获取页面的scrollTop;
$('body').css("top", -top + "px");//给body一个负的top值;
$('body').addClass('add');//给body增加一个类,position:fixed;

}
} else {
if (this.getSystemOS() == "ios") {
$('body')[0].style.overflow = "visible";
$('body')[0].removeEventListener("touchmove", this.mo,{ passive: false });
} else {
$('body').removeClass('add');//去掉给body的类
$(window).scrollTop(this.top);//设置页面滚动的高度,如果不设置,关闭弹出层时页面会回到顶部。
}
}
},
/**
* 禁用滑动相关
* */
overscroll: function (el) {
el.addEventListener('touchstart', function () {
var top = el.scrollTop
, totalScroll = el.scrollHeight
, currentScroll = top + el.offsetHeight;
if (top === 0) {
el.scrollTop = 1;
} else if (currentScroll === totalScroll) {
el.scrollTop = top - 1;
}
});
el.addEventListener('touchmove', function (evt) {
if (el.offsetHeight < el.scrollHeight)
evt._isScroller = true;
});

document.body.addEventListener('touchmove', this.mo,{ passive: false });
},
mo: function (evt) {
if (!evt._isScroller) {
evt.preventDefault();
}
}

/**
* 获取操作系统类型
* */
getSystemOS: function () {
return "ios";
if (/android/i.test(navigator.userAgent)) {
return "an";
}

if (/ipad|iphone/i.test(navigator.userAgent)) {
return "ios";
}

if (/mac/i.test(navigator.userAgent)) {
return "mac";
}

if (/window|mac|linux/i.test(navigator.userAgent)) {
return "desktop";
}
if (navigator.userAgent.match(/.*Mobile.*/)) {
return "mobile";
}
},