Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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 - Fatal编程技术网

Javascript 防止在浏览器和设备中滚动

Javascript 防止在浏览器和设备中滚动,javascript,Javascript,我使用这个jquery来防止在浏览器和手持设备上滚动: $(document).ready(function() { $('div.overlay').click(function() { $('html').css('overflow', 'hidden'); $('body').bind('touchmove', function(e) { e.preventDefault()

我使用这个jquery来防止在浏览器和手持设备上滚动:

    $(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ã,请阅读我的问题。我想在按下按钮时禁用滚动,然后在覆盖关闭时再次启用。