Javascript 防止在浏览器和设备中滚动
我使用这个jquery来防止在浏览器和手持设备上滚动:Javascript 防止在浏览器和设备中滚动,javascript,Javascript,我使用这个jquery来防止在浏览器和手持设备上滚动: $(document).ready(function() { $('div.overlay').click(function() { $('html').css('overflow', 'hidden'); $('body').bind('touchmove', function(e) { e.preventDefault()
$(document).ready(function() {
$('div.overlay').click(function() {
$('html').css('overflow', 'hidden');
$('body').bind('touchmove', function(e) {
e.preventDefault()
});
});
$('.overlay-close').click(function() {
$('html').css('overflow', 'scroll');
$('body').unbind('touchmove');
});
});
但是我已经更新了javascript,现在snipp不起作用了
这是javascript
(function() {
var triggerButtons = document.getElementsByClassName('trigger-overlay'),
overlay = document.querySelectorAll('div.overlay');
var closeButtons = [];
for (var i = 0; i < overlay.length; i++) {
var closeBttn = overlay[i].querySelector('button.overlay-close');
closeButtons.push(closeBttn);
}
transEndEventNames = {
'WebkitTransition': 'webkitTransitionEnd',
'MozTransition': 'transitionend',
'OTransition': 'oTransitionEnd',
'msTransition': 'MSTransitionEnd',
'transition': 'transitionend'
},
transEndEventName = transEndEventNames[Modernizr.prefixed('transition')],
support = {
transitions: Modernizr.csstransitions
};
function toggleOverlay(overlay) {
if (classie.has(overlay, 'open')) {
classie.remove(overlay, 'open');
classie.add(overlay, 'close');
var onEndTransitionFn = function(ev) {
if (support.transitions) {
if (ev.propertyName !== 'visibility') return;
this.removeEventListener(transEndEventName, onEndTransitionFn);
}
classie.remove(overlay, 'close');
};
if (support.transitions) {
overlay.addEventListener(transEndEventName, onEndTransitionFn);
} else {
onEndTransitionFn();
}
} else {
classie.add(overlay, 'open');
classie.remove(overlay, 'close');
}
}
for (var i = 0; i < triggerButtons.length; i++) {
triggerButtons[i].addEventListener('click', (function(i) {
return function() {
toggleOverlay(overlay[i])
};
})(i));
}
for (var i = 0; i < closeButtons.length; i++) {
closeButtons[i].addEventListener('click', (function(i) {
return function() {
toggleOverlay(overlay[i])
};
})(i));
}
})();
(函数(){
var triggerButtons=document.getElementsByClassName('trigger-overlay'),
overlay=document.queryselectoral('div.overlay');
var closeButtons=[];
对于(变量i=0;i
当我(随机)点击弹出的覆盖时,无滚动代码似乎开始生效,然后当我按下closeBttn
时,它就没有启用
预期结果:
当显示覆盖时(当按下
triggerbutten
时),滚动被禁用。然后在覆盖关闭时启用滚动。将主体{overflow:hidden}添加到CSS中,它将停止显示滚动条。simpleno这么简单@MohammedH–mzã,请阅读我的问题。我想在按下按钮时禁用滚动,然后在覆盖关闭时再次启用。