是否可以使用 jquery load 函数在单击按钮时打开页面中心的模型
Is it possible to use the jquery load function to open a model in the centre of the page when a button is clicked?
我尝试在下面的代码中使用jquery load函数来加载模型(.DAE 文件)放入div 中,但它不起作用并显示大量数字和单词,如下面的屏幕截图所示。
单击按钮时出现问题的屏幕截图
我想知道是否可以使用加载函数来显示模型(.DAE 文件),与屏幕截图非常相似,但在单击任一按钮时,在页面中心显示的两个模型之间切换。(换句话说,是否有一个选择器在页面中心而不是div加载模型?
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#LBC').click(function () {
$('#target').load('blood.DAE');
});
});
</script>
<title>Visualising Cells</title>
<meta charset="UTF-8">
<link rel="stylesheet" href="style.css">
<script src="three.js"></script>
<script src="ColladaLoader.js"></script>
</head>
<body>
<script src="js/controls/OrbitControls.js"></script>
<script>
var width = window.innerWidth;
var height = window.innerHeight;
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(
75, window.innerWidth / window.innerHeight, 0.01, 500
);
camera.position.z = 0.16;
camera.position.x = 0;
camera.position.y = 0;
scene.add(camera);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(width, height);
document.body.appendChild(renderer.domElement);
renderer.render(scene, camera);
renderer.setClearColor("rgb(181,181,181)");
light = new THREE.DirectionalLight(0xffffff);
light.position.set(1, 1, 1);
scene.add(light);
light = new THREE.DirectionalLight(0xffffff);
light.position.set(0, 0, 0.14);
scene.add(light);
var loader = new THREE.ColladaLoader();
loader.load('blood.DAE', function (collada) {
var object = collada.scene;
object.position.x = 0;
object.position.y = 0;
object.position.z = 0;
object.updateMatrix();
scene.add(object);
}
);
document.addEventListener('keydown', function (event) {
console.log("Up Arrow Pressed");
console.log(camera.position.z);
if (event.keyCode === 38) {
if (camera.position.z >= 0.1) {
camera.position.z = camera.position.z - 0.01;
}
}
else if (event.keyCode === 40) {
console.log("Down Arrow Pressed");
if (camera.position.z < 0.2)
camera.position.z = camera.position.z + 0.01;
}
}, true);
render = function () {
requestAnimationFrame(render);
object.rotation.x += 0.01;
object.rotation.y += 0.01;
renderer.render(scene, camera);
};
render();
</script>
<div class="float-btn">
<button type="button" id="LBC">Load Red Blood Cell</button>
<button type="button" id="LEC">Load Egg Cell</button>
</div>
<div class="float-txt">
<div style="color: #000000; font-family: Arial; font-size: 18px; text-decoration: underline;">
<h1>Visualising Microscopic Cells</h1>
</div>
</div>
<div class="instructions">
<div style="color: #000000; font-family: Arial; font-size: 16px; text-decoration: underline;">
<h2>Instructions</h2>
</div>
</div>
<div class="instruction-txt">
<div style="color: #000000; font-family: Arial; font-size: 14px">
<p>
<u>Zoom In:</u> <strong>Up Arrow</strong> <br />
<u>Zoom Out:</u> <strong>Down Arrow</strong>
</p>
</div>
</div>
<div class="Model-Location" id="target"></div>
</body>
</html>
我从未使用过 .dae 文件,但我假设页面正在从中加载 xml,而不是实际将其转换为您想要的内容。您需要找出一些将数据转换为所需的GUI格式的方法,然后调用它以加载jquery。
假设 ajax 调用blood.dae
返回 HTML...
如果要缓存内容,还有更复杂的方案,但对于两个不同的按钮,可以只使用两个不同的处理程序,每个按钮将内容加载到目标中:
$('#LBC1').click(function() {
$('#target').load('blood.DAE');
});
$('#LBC2').click(function() {
$('#target').load('somethingelse.DAE');
});
如果您希望用户来回切换并且想要确保快速切换,则可以将内容加载到两个不同的目标中,然后在单击时隐藏/显示相应的目标(如果已加载)。
相关文章:
- 点击相同的按钮打开模型,然后提交表单
- 角度无线电按钮ng模型不起作用
- Angularjs无法将单选按钮与嵌套范围内的模型绑定
- Aurelia绑定-点击按钮返回查看模型
- 如何在angularjs中点击按钮重置模型
- 使用带角度的单选按钮更新不同的模型
- 使用嵌套ng中带有单选按钮的ng模型重复不起作用
- 构建淘汰模型并动态查看,不设置单选按钮
- NG模型对我来说是矫枉过正的.任何仅在单击按钮时更新范围的替代方案,而不是每次都更新范围
- 单击按钮时更新角度视图模型
- 如何在角度.js中使用ng模型获取按钮文本
- Ember.js – 将按钮操作从 #each 循环绑定到其自己的模型
- NG-模型似乎只在模态视图内的离子单选按钮上绑定一种方式
- 单选按钮中的 ng 模型始终未定义
- MVC 5 Razor 中的引导模式:当用户单击模式中的继续按钮时,如何将模型布尔值更新为 false
- 是否可以使用 jquery load 函数在单击按钮时打开页面中心的模型
- 单击轨道按钮以永久更改数据模型和 css
- 表单提交不会更新绑定到单选按钮的模型
- 使用角度模型单击按钮后,将值设置为单选按钮
- 如何更新引导模型按钮上的按钮单击