Javascript 仅使用滚动条滚动

Javascript 仅使用滚动条滚动,javascript,html,css,node.js,Javascript,Html,Css,Node.js,我使用three.js来允许用户创建和编辑一个3D模型,其中包括使用滚轮/双指功能来放大和缩小。我希望页面的第二部分在默认情况下不在屏幕上,但用户可以向下滚动查看它。最好只使用滚动条,而滚轮仍可使用 出于性能方面的原因,我不想使用vue.js之类的东西。用户提供的数据保留在他们的计算机上,我在这两个部分中都使用这些数据。这使我无法将数据放在另一个屏幕上 Overflow:hidden是不可能的,因为这样我就无法滚动到底部 我尝试将PreventDefault与几个不同的eventlistener

我使用three.js来允许用户创建和编辑一个3D模型,其中包括使用滚轮/双指功能来放大和缩小。我希望页面的第二部分在默认情况下不在屏幕上,但用户可以向下滚动查看它。最好只使用滚动条,而滚轮仍可使用

出于性能方面的原因,我不想使用vue.js之类的东西。用户提供的数据保留在他们的计算机上,我在这两个部分中都使用这些数据。这使我无法将数据放在另一个屏幕上

Overflow:hidden
是不可能的,因为这样我就无法滚动到底部

我尝试将
PreventDefault
与几个不同的
eventlistener
一起使用,但没有一个能正常工作

下面是确定窗口大小的函数,应该包括一个函数或代码来防止滚动。没有特定的元素不应该滚动,所有的元素都不应该滚动

function onWindowResize() {
  var viewWidth;
  var viewHeight;
  viewHeight=window.innerHeight-315;
  //For Mobile
  if(!UIactive && innerWidth < 640){
    viewWidth= window.innerWidth;
  //For Computer & Tablet
  } else {
    viewWidth= window.innerWidth -317;
    if(window.innerHeight < 700){
      viewHeight=window.innerHeight-52.67;
      //Disable Scrollwheel

      window.addEventListener('wheel',function(event){
        //mouseController.wheel(event);
        event.preventDefault();
      }, false);

    }
  }
    camera.aspect = (viewWidth) / (viewHeight);
    camera.updateProjectionMatrix();
    renderer.setSize(viewWidth, viewHeight);
    UI.style.height= (viewHeight+'px');

}
然后,我继续尝试再次使用preventDefault,并收到以下错误

由于目标被视为被动事件,无法在被动事件侦听器中防止默认值

说,

通过此干预,滚轮/触摸板滚动不会在文档级滚轮事件侦听器上被阻止,这些侦听器不需要在滚轮事件上调用preventDefault()

因此,您应该对特定的div应用onmouseheel事件,如下所示:

<div id="ScrollableDiv" style="height : 900px;background-color : red">

</div>

function stop(){
    return false;
}

var div = document.getElementById('ScrollableDiv');
div.onmousewheel= stop;

函数停止(){
返回false;
}
var div=document.getElementById('ScrollableDiv');
div.onmouseheel=停止;
请参考本作业。

说:

通过此干预,滚轮/触摸板滚动不会在文档级滚轮事件侦听器上被阻止,这些侦听器不需要在滚轮事件上调用preventDefault()

因此,您应该对特定的div应用onmouseheel事件,如下所示:

<div id="ScrollableDiv" style="height : 900px;background-color : red">

</div>

function stop(){
    return false;
}

var div = document.getElementById('ScrollableDiv');
div.onmousewheel= stop;

函数停止(){
返回false;
}
var div=document.getElementById('ScrollableDiv');
div.onmouseheel=停止;

请参阅此工作。

可能的副本可能的副本谢谢!这对整个窗口或文档都不起作用,但我对所有内容都投了一个大号,它起作用了!对对的文件上就是这么说的。您不能使用窗口对象。谢谢!这对整个窗口或文档都不起作用,但我对所有内容都投了一个大号,它起作用了!对对的文件上就是这么说的。不能使用窗口对象。