如何触发onMousewheel上的事件?

时间:2016-04-18 10:55:54

标签: javascript three.js mousewheel

我正在开发一个WebGL应用程序。例如,我有一个球体对象,它使用轨道控制进行放大/缩小。

现在我想为鼠标滚轮设置一个事件。当放大我当前的WebGL块对应的地图位置时,它可以放大/缩小(用于内联块)以用于地图和WebGL。但问题是,当我使用鼠标滚轮时,首先触发了我的事件。我也想知道我的事件逻辑是否正确。

root.addEventListener('mousewheel', mousewheel, false); 

function mousewheel(event) {
    var mX = (event.wheeldetailX/width)* 2 - 1;
    var mY = (event.wheeldetailY/height)* 2 + 1;

    var WebGLZoom = new THREE.Vector3(mX, mY, 1);
    var raycaster = new THREE.Raycaster();

    raycaster.setFromCamera(WebGLZoom, camera);
    WebGLZoom.sub(camera.position);

    var mapzoom = map.getZoom();

    if (WebGLZoom.z <= 5 && WebGLZoom.z > 2) {          
        map.setZoom(17);
    } else if (WebGLZoom.z <= 2 && WebGLZoom.z > 0.0) {     
        map.setZoom(19);
    } else {                
        map.setZoom(14);
    }                               
}

2 个答案:

答案 0 :(得分:1)

您可以像这样使用Caused by: java.sql.SQLException: operation not allowed: Ordinal binding and Named binding cannot be combined! at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:10093) at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:5693) at org.hibernate.result.internal.OutputsImpl.<init>(OutputsImpl.java:69) ... 72 more 事件。

wheel

每次鼠标滚轮在文档上滚动时,都会生成控制台日志。 document.addEventListener('wheel', function(event){ console.log(event.deltaY); }, false); 事件的deltaXdeltaY属性对于确切了解用户滚动的数量以及向哪个方向特别有用。

答案 1 :(得分:0)

要使用的事件是wheel。您可以找到一个有效的示例here