jquery加载函数问题

2023-11-29

我正在尝试使用 jquery 加载函数在按下按钮时将转换为 .DAE 文件的 3D 模型加载到目标 div 中。然而,当按下按钮时,屏幕上会出现与文件相关的大量数字,而不是模型......

这是问题的屏幕截图

如果不可能做到这一点,我还想知道是否可以使用jquery加载功能来简单地替换单击按钮时显示在页面中心的模型,如屏幕截图所示?

任何帮助是极大的赞赏。我的代码如下所示。

<!DOCTYPE html>

<html>

<head>

<script type="text/javascript" src="jquery.js"></script>

<script type="text/javascript">
$(document).ready(function() {

$('#LBC').click(function() {
    $('#target').load('bloodexternalcontent.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 controls = new THREE.OrbitControls( camera );
controls.addEventListener( 'change', render );
</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('egg2.DAE', function (collada) {

            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.0;
object.rotation.y += 0.0;


renderer.render(scene, camera);
controls.update();
        };
        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">
<div style="font-family: Arial">
<div style="font-size: 18px">
<div style="text-decoration: underline">
<h1>Visualising Microscopic Cells</h1>
</div>

<div class="instructions">
<div style="color:#000000">
<div style="font-family: Arial">
<div style="font-size: 16px">
<div style="text-decoration: underline">
<h2>Instructions</h2>
</div>

<div class="instruction-txt">
<div style="color:#000000">
<div style="font-family: Arial">
<div style="font-size: 14px">
<p><u>Zoom In:</u> <strong>Up Arrow</strong> <br><u>Zoom Out:</u> <strong>Down Arrow</strong></br></p>
</div>

<div class="Model-Location" id="target">
</div>

</body>

</html>

您可以通过将 .dae 数据加载到可配置的文件中来替换页面中心显示的模型THREE.ColladaLoader()对象的方式与loader.load在您的原始代码中使用。

在下面的示例中,单击事件绑定到两个按钮。它们会触发一个删除当前模型的函数。然后加载相关的 .dae 文件并将所需的模型添加到场景中。 (请注意,我在标记中保留了 HTML 问题,例如未封闭的 div。)

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="jquery.js"></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 myModel; // used to reference the most recently-loaded model

            $(document).ready(function() {
                // when the page has loaded, add click functions to the two buttons
                $("#LBC").click(function() {
                    toggleModel("bloodexternalcontent");
                });

                $("#LEC").click(function() {
                    toggleModel("egg2");
                });
            });

            function toggleModel(modelName) {
                // remove the existing model from the scene
                scene.remove(myModel);
                // add the chosen model
                loadModel(modelName);
            }

            function loadModel(modelName) {
                // add the specified model
                loader.load(modelName+'.DAE', function (collada) {
                    myModel = collada.scene;
                    myModel.position.x = 0;
                    myModel.position.y = 0;
                    myModel.position.z = 0;
                    myModel.updateMatrix();
                    scene.add(myModel);                
                });
            }

            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 controls = new THREE.OrbitControls( 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();

            // load the default model
            loadModel("egg2");

            document.addEventListener('keydown', function(event) {        
                console.log(camera.position.z);
                if (event.keyCode == 38) {
                    // don't scroll the window        
                    console.log("Up Arrow Pressed");
                    event.preventDefault();
                    if (camera.position.z >= 0.1) {
                        camera.position.z = camera.position.z - 0.01;
                    }

                }
                else if (event.keyCode == 40) {
                    // don't scroll the window
                    event.preventDefault();
                    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.0;
                // object.rotation.y += 0.0;

                renderer.render(scene, camera);            
                // controls.update();
            };

            controls.addEventListener('change', render );

            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">
              <div style="font-family: Arial">
                 <div style="font-size: 18px">
                     <div style="text-decoration: underline">
                         <h1>Visualising Microscopic Cells</h1>
                    </div>

                 <div class="instructions">
                     <div style="color:#000000">
                         <div style="font-family: Arial">
                             <div style="font-size: 16px">
                                <div style="text-decoration: underline">
                                     <h2>Instructions</h2>
                                 </div>

                 <div class="instruction-txt">
                    <div style="color:#000000">
                        <div style="font-family: Arial">
                            <div style="font-size: 14px">
                                <p><u>Zoom In:</u> <strong>Up Arrow</strong> <br><u>Zoom Out:</u> <strong>Down Arrow</strong></br></p>
                            </div>

                 <div class="Model-Location" id="target">
                </div>
    </body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jquery加载函数问题 的相关文章

随机推荐

  • Pipfile 和 Pipfile.lock 如何使用?

    看起来Pipfile Pipfile lock旨在替代requirements txt 在Python打包的上下 文中 然而 关于它们如何实际工作的文档并不多 我在 Python 网站的 PyPi 部分找到了 pipfile 的不断发展的描
  • Google App Engine 支持 Java 脚本引擎吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我想在 Google App Engine 运行时内动态评估 JavaScript 代码 Java有这个功能 但想知道GAE是否也支持这个功能 如果您能提供一个简单的代码将不胜感激
  • 自动将文件部署到 Amazon S3?

    我有一个 Rails 项目 我将把它部署到令人惊叹的地方Heroku 我真的希望能够自动将我的资源推送到 Amazon S3 本例中的资源是我的图像 样式表和 JavaScript 显然 我可以自己编写某种 capistrano 任务来执行
  • 使用 Swift 中其他视图中的视图输入的文本(Xcode 6)

    我对 Swift 和 Xcode 几乎完全陌生 所以请原谅我在这个领域缺乏知识 目前我有一个带有标签的视图控制器 我想在此之前添加一个视图 其中有一个文本字段 用户在其中输入名称 然后应用程序转到带有标签的第二个视图 其中用户输入的名称放置
  • Spring 中的 NoClassDefFoundError

    我编写了一个在 Weblogic 10 3 上运行的 Spring 应用程序 在此应用程序中 我有一些 JMS 队列使用者 有时 当应用程序关闭或打开时 我会收到错误消息 我在两种情况下都看到了此错误 java lang NoClassDe
  • 如何在 Google Colab 上安装 auto-sklearn?

    我想用自动学习 我使用了这个代码document 所有软件包均已安装 但我遇到了这样的错误 curl https raw githubusercontent com automl auto sklearn master requiremen
  • 并行流上的 Skip() 是否存在良好的用例?

    2015 年 9 月编辑 当我最初于 2015 年 2 月提出这个问题时 该行为在链接的问题虽然是违反直觉的kind of规范允许 尽管文档中存在一些小小的不一致 然而 Tagir Valeev 在 2015 年 6 月 提出了一个新问题
  • VBA Microsoft Word - 序列号

    我已经手动完成了此操作 我想将 ZXZ 的每个实例替换为从 1 一直到 Word 文档中最后一次出现的 ZXZ 的序列号 基本上 我想要实现的是在特定的Word文档中运行Word VBA宏 其中VBA宏从文件顶部开始搜索 查找每个出现的ZX
  • 点击后退按钮完成 UITextField 的编辑

    我的 NavigationController 中有 2 个控制器 首先将第二个推入堆栈 用户可以与那里的文本字段进行交互 然后 在一种情况下 用户将点击后退按钮以转到上一个屏幕 假设第二个实例的加载是 重 的 所以一旦需要 我将只保留它的
  • Python 中与密钥库的 https 握手

    我设置了一个 Web 服务器 该服务器拒绝没有有效 p12 证书的连接 我需要通过 Python 脚本访问在服务器上运行的 REST API 但我找不到有关如何执行此操作的任何信息 如果有人有关于如何在 Python 中使用 p12 证书执
  • 如何增加 VC9 (MSVC 2008) 中允许的修饰名称长度?

    我有一组相当大且复杂的程序要从 VC8 移植到 VC9 其中一个模块具有许多分层的 typedef 这会导致编译器生成 C4503 警告 修饰名被截断 生成的LIB文件将无法正确链接到项目中的其他模块 VC8 对此没有遇到任何问题 这让我得
  • Android - 是否可以通过编程方式获取安装引荐来源网址

    我注意到浏览器中的一些 Google Play 应用程序链接有referrer 它们的属性 这显然告诉了将您发送到 Google Play 中该应用程序页面的引荐来源网址 是否可以在我的应用程序代码中看到该引荐来源网址 如果有 如果没有 是
  • 通过蓝牙IPhone SDK发送字符串

    如何将字符串从 iPhone 发送到另一个设备 android pc 等 EDITED 以下代码用于通过蓝牙传输消息 视图控制器 h 文件 import
  • 使用 JAXB 编组/解组 Java 超类和子类

    我一直在尝试 JAXB 教程 并设法使代码能够从 Java 对象生成 XML 文件 然后能够使用 XML 生成 Java 对象 目前 它读取同一类的多个实例来创建一个类似于以下文件的 XML 文件
  • 无法进入已加载符号的 Nuget 库

    我已将 Nuget 库上传到 Azure Devops Artifacts 中 它还将符号文件 PDB 发布到 Azure Devops 符号服务器 我在 Visual Studio 中添加了设置 以便按照上述说明从 Azure Devop
  • 在Delphi XE中使用UIDocumentInteractionController

    我有一个 Delphi XE5 应用程序 可以在设备上本地下载和存储 PDF 我在表单上有一个 TWebBrowser 来查看 PDF 它工作得很好 我现在希望与其他应用程序 例如 Safari Mail 等 共享 PDF 但我真的很挣扎
  • xUnit.net:全局设置+拆卸?

    这个问题是关于单元测试框架的xUnit net 我需要在执行任何测试之前运行一些代码 并在所有测试完成后运行一些代码 我认为应该有某种属性或标记接口来指示全局初始化和终止代码 但找不到它们 或者 如果我以编程方式调用 xUnit 我也可以使
  • 将 HTML 选择存储到变量中/在 Google 表格中使用该数据

    我几乎已经有了一个 HTML 表单选择器 它根据 google 表格列中的数据创建一个数组 完成 并将该数据填充到下拉框中 完成 我整个周末一直在尝试弄清楚如何捕获下拉选项的选择 然后将其合并到一个变量中 这是我的启动 HTML 弹出窗口的
  • 将图例宽度设置为 100% 绘图宽度

    无论实际尺寸如何 如何将图例高度或宽度设置为绘图高度 宽度的 100 library ggplot2 ggplot iris aes Petal Width Sepal Width color Petal Length geom point
  • jquery加载函数问题

    我正在尝试使用 jquery 加载函数在按下按钮时将转换为 DAE 文件的 3D 模型加载到目标 div 中 然而 当按下按钮时 屏幕上会出现与文件相关的大量数字 而不是模型 这是问题的屏幕截图 如果不可能做到这一点 我还想知道是否可以使用