Javascript 仅使用滚动条滚动
我使用three.js来允许用户创建和编辑一个3D模型,其中包括使用滚轮/双指功能来放大和缩小。我希望页面的第二部分在默认情况下不在屏幕上,但用户可以向下滚动查看它。最好只使用滚动条,而滚轮仍可使用 出于性能方面的原因,我不想使用vue.js之类的东西。用户提供的数据保留在他们的计算机上,我在这两个部分中都使用这些数据。这使我无法将数据放在另一个屏幕上Javascript 仅使用滚动条滚动,javascript,html,css,node.js,Javascript,Html,Css,Node.js,我使用three.js来允许用户创建和编辑一个3D模型,其中包括使用滚轮/双指功能来放大和缩小。我希望页面的第二部分在默认情况下不在屏幕上,但用户可以向下滚动查看它。最好只使用滚动条,而滚轮仍可使用 出于性能方面的原因,我不想使用vue.js之类的东西。用户提供的数据保留在他们的计算机上,我在这两个部分中都使用这些数据。这使我无法将数据放在另一个屏幕上 Overflow:hidden是不可能的,因为这样我就无法滚动到底部 我尝试将PreventDefault与几个不同的eventlistener
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=停止;
请参阅此工作。可能的副本可能的副本谢谢!这对整个窗口或文档都不起作用,但我对所有内容都投了一个大号,它起作用了!对对的文件上就是这么说的。您不能使用窗口对象。谢谢!这对整个窗口或文档都不起作用,但我对所有内容都投了一个大号,它起作用了!对对的文件上就是这么说的。不能使用窗口对象。