单击three.js中的链接旋转球体
Rotate sphere by clicking on link in three.js
我创建了一个球体,并有一组链接。我想通过单击任何链接来更改球体的位置或旋转球体。我试着搜索了很多,但找不到任何类似的例子。
这只是创建一个HTML元素并将JS函数与其"onclick"事件关联的问题。以下是使用按钮在基本场景中的快速实现(您可以用链接或任何您喜欢的东西替换它):
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<title>Rotate Mesh On Button Clicked</title>
</head>
<body>
<button onclick="myFunction()">Rotate</button>
<script type="text/javascript" src="three.min.js"></script>
<script type="text/javascript" src="OrbitControls.js"></script>
<script type="text/javascript" src="scene.js"></script>
</body>
</html>
JavaScript
var container, camera, scene, renderer;
var geometry, material, mesh;
var cameraControls;
init();
animate();
function init() {
container = document.createElement( 'div' );
document.body.appendChild( container );
// renderer
renderer = new THREE.WebGLRenderer( { antialias: true } );
renderer.setSize( window.innerWidth, window.innerHeight );
renderer.setClearColor( 0xdbdbdb );
container.appendChild( renderer.domElement );
// scene
scene = new THREE.Scene();
// camera
camera = new THREE.PerspectiveCamera( 35, window.innerWidth / window.innerHeight, 1, 10000 );
camera.position.set( 3, 0.5, 40 );
scene.add( camera );
// controls
cameraControls = new THREE.OrbitControls( camera, renderer.domElement );
// lights
scene.add( new THREE.AmbientLight( 0x222222 ) );
var light = new THREE.PointLight( 0xffffff, 0.8 );
camera.add( light );
// objects
geometry = new THREE.CylinderGeometry( 5, 5, 5, 5 );
material = new THREE.MeshPhongMaterial( {color: 0x00aafa} );
mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );
window.addEventListener( 'resize', onWindowResize, false );
}
function myFunction() {
mesh.rotateX(90);
}
function onWindowResize() {
camera.aspect = window.innerWidth / window.innerHeight;
camera.updateProjectionMatrix();
renderer.setSize( window.innerWidth, window.innerHeight );
}
function animate() {
requestAnimationFrame( animate );
render();
cameraControls.update();
}
function render() {
camera.lookAt( scene.position );
renderer.render( scene, camera );
}
正如您所看到的,当单击该按钮时,它会调用"myFunction",将网格旋转90°,非常简单。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 如何使用jQuery自动打开页面上的所有链接
- 动态地改变“”的URL;添加新项目”;链接使用javascript/jquery
- jquery动画可以通过编程链接吗
- 在单击href链接的同时下载文件
- 尽管链接成功并已成功下载,但未找到NPM模块
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- ReactJS映射:如何仅在url变量不为空时呈现html链接
- 单击链接时如何将引导程序转盘旋转到特定位置
- 单击three.js中的链接旋转球体
- 在旋转javascript横幅中添加链接
- 将变量 javascript 添加到用于旋转图像的链接中
- 猫头鹰旋转木马不起作用,也许我链接不正确
- 带有URL链接且无重复项的旋转横幅
- 如何在随机旋转器javascript中包含链接和大小
- 当最后一项在javascript中的旋转木马中可见时,如何禁用链接/按钮等
- 如何获取javascript"链接旋转器”;从身体到部门的功能
- 我如何通过点击网页上的超链接来切换引导旋转木马中的项目
- 链接在列表组不打开时触发(引导旋转木马调整)
- 需要帮助更新链接在旋转木马时,下一个/上一个按钮被点击