在JavaScript中重新启用鼠标滚动

时间:2017-11-12 03:24:13

标签: javascript jquery html css

我一直在修补以下CodePen。它可以防止用户向下滚动页面,而是使用向下滚动来形成星座动画。在星座动画完成后,如何让用户能够向下滚动页面?就目前情况而言,无论动画的状态如何,都会禁用滚动。

这是我正在努力解决的代码的摘录。

window.addEventListener("mousewheel", MouseWheelHandler, false);
window.addEventListener("DOMMouseScroll", MouseWheelHandler, false);
function MouseWheelHandler(e) {

  var e = window.event || e; // old IE support
  var delta = Math.max(-30, Math.min(60, (e.wheelDelta || -e.detail)));

  if (delta > 0) {
    showFinal=false;
    for(var i = 0; i < stars.length; i++) {
      stars[i].reseting = true;
    }
  } else {
    showFinal=true;
  }
  for(var i = 0; i < stars.length; i++) {
    stars[i].move();
  }
  e.preventDefault();
}

window.addEventListener("keydown", keyDown, false);
function keyDown(e) {
  var keyCode = e.keyCode;

  if (keyCode==38) {
    //up
    showFinal = false;
    for(var i = 0; i < stars.length; i++) {
      stars[i].reseting = true;
    }
  } 

  if (keyCode==40) {
    //down
    showFinal = true;
  }

  for(var i = 0; i < stars.length; i++) {
    stars[i].move();
  }
  e.preventDefault();
}

2 个答案:

答案 0 :(得分:2)

这是我不会推荐的事情,但这里是您需要做的2项更改

#container {
    overflow:auto;
    position:relative;
}

并从e.preventDefault();移除function MouseWheelHandler(e) {,您需要在正文中添加更多文字以查看滚动。

答案 1 :(得分:0)

禁用滚动:

$('#container').css('overflow', 'hidden');

启用滚动:

$('#container').css('overflow', 'scroll');