首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在三个js项目上插入html表单

在三个js项目上插入html表单
EN

Stack Overflow用户
提问于 2018-08-09 01:01:12
回答 1查看 550关注 0票数 -1

我实际使用的是three.js,我需要在具有增强现实功能的网页中插入一个简单的html表单。显示我的代码作品,换句话说,我可以显示3d模型,我可以显示表单,并在控制台中没有错误…但是我可以填写表单:/我甚至不能触摸提交按钮表单被阻止:/我如何解决这个问题?

下面是我的js代码:

代码语言:javascript
复制
function start() {

            //////////////////////////////////////////////////////////////////////////////////
            //      Init
            //////////////////////////////////////////////////////////////////////////////////

            // init renderer
            var renderer    = new THREE.WebGLRenderer({
                antialias : true,
                alpha: true
            });
            //renderer.setClearColor(new THREE.Color('lightgrey'), 0)
            renderer.setSize( window.innerWidth, window.innerHeight );
            renderer.domElement.style.position = 'absolute'
            renderer.domElement.style.top = '0px'
            renderer.domElement.style.left = '0px'
            document.body.appendChild( renderer.domElement );

            // array of functions for the rendering loop
            var onRenderFcts = [];

            // init scene
            var scene = new THREE.Scene();


            // Create a camera
            var camera = new THREE.Camera();
            scene.add(camera);

            // Create a light
            var light = new THREE.HemisphereLight(0xffffff, 1.5);
            light.position.set(0, 0, 1);
            scene.add(light);



            ////////////////////////////////////////////////////////////////////////////////
            //          handle arToolkitSource
            ////////////////////////////////////////////////////////////////////////////////


            var arToolkitSource = new THREEx.ArToolkitSource({
            sourceType : 'image',
            sourceUrl : URL_markers + 'testwallpaper.jpg',      
            })



            arToolkitSource.init(function onReady(){
                onResize()
            })

            // handle resize
            window.addEventListener('resize', function(){
                onResize()
            })
            function onResize(){
                arToolkitSource.onResizeElement()   
                arToolkitSource.copyElementSizeTo(renderer.domElement)  
                if( arToolkitContext.arController !== null ){
                    arToolkitSource.copyElementSizeTo(arToolkitContext.arController.canvas) 
                }   
            }



            ////////////////////////////////////////////////////////////////////////////////
            //          initialize arToolkitContext
            ////////////////////////////////////////////////////////////////////////////////


            // create atToolkitContext
            var arToolkitContext = new THREEx.ArToolkitContext({
                cameraParametersUrl: URL_markers + 'camera_para.dat',
                detectionMode: 'mono',
                /*maxDetectionRate: 30,
                canvasWidth: 80*3,
                canvasHeight: 60*3,*/
            })

            // initialize it
            arToolkitContext.init(function onCompleted(){
                // copy projection matrix to camera
                camera.projectionMatrix.copy( arToolkitContext.getProjectionMatrix() );
            })

            // update artoolkit on every frame
            onRenderFcts.push(function(){
                if( arToolkitSource.ready === false )   return

                arToolkitContext.update( arToolkitSource.domElement )
            })



            ////////////////////////////////////////////////////////////////////////////////
            //          Create a ArMarkerControls
            ////////////////////////////////////////////////////////////////////////////////

            var myMarker = 'pattern-marker-carrefour.patt';     //marker_axxes.patt, patt.hiro, patt.kanji
            var markerRoot = new THREE.Group
            scene.add(markerRoot)
            //console.log(markerRoot); // ---- log ----
            var artoolkitMarker = new THREEx.ArMarkerControls(arToolkitContext, markerRoot, {
                type : 'pattern',
                patternUrl : URL_markers + myMarker,
            })

            // build a smoothedControls
            var smoothedRoot = new THREE.Group()
            scene.add(smoothedRoot)
            var smoothedControls = new THREEx.ArSmoothedControls(smoothedRoot, {
                lerpPosition: 0.4,
                lerpQuaternion: 0.3,
                lerpScale: 1,
            })
            onRenderFcts.push(function(delta){
                smoothedControls.update(markerRoot)
            })




            // instantiate a loader
            var loader = new THREE.OBJLoader();

            var mtlLoader = new THREE.MTLLoader();
            mtlLoader.load( "3d_models/OBJ/present/present.mtl", function( materials ) {
                materials.preload();
                var objLoader = new THREE.OBJLoader();
                objLoader.setMaterials( materials );
                objLoader.load("3d_models/OBJ/present/present.obj", function ( object ) {
                    var box3d = new THREE.Box3();
                    var size = box3d.setFromObject(object).getSize(new THREE.Vector3());
                    var scal = Math.max(Math.abs(size.x),Math.abs(size.y),Math.abs(size.z));
                    object.scale.multiplyScalar(1.5/scal);

                    object.rotation.set(80, 0, 0);
                    console.log(object);
                    markerRoot.add( object );
                    onRenderFcts.push(function(){
                        object.rotation.y += 0.03;
                        //object.rotation.y += 0.03;
                    })
                });
            });

            //////////////////////////////////////////////////////////////////////////////////
            //      render the whole thing on the page
            //////////////////////////////////////////////////////////////////////////////////
            // render the scene
            onRenderFcts.push(function(){
                renderer.render( scene, camera );
            })
            // run the rendering loop
            var lastTimeMsec= null
            requestAnimationFrame(function animate(nowMsec){
                // keep looping
                requestAnimationFrame( animate );
                // measure time
                lastTimeMsec    = lastTimeMsec || nowMsec-1000/60
                var deltaMsec   = Math.min(200, nowMsec - lastTimeMsec)
                lastTimeMsec    = nowMsec
                // call each update function
                onRenderFcts.forEach(function(onRenderFct){

                    onRenderFct(deltaMsec/1000, nowMsec/1000)
                })
            })
        }

下面是我的表单html:

代码语言:javascript
复制
<div class="absolute">
    <center>
    <form class="form-container" name="frmOrderItem" action="demo_AR_axxes.php" method="post" enctype="multipart/form-data">
    <div class="form-title"><h2>Jouer et GAGNER !</h2></div>
    <div class="form-title">Nom :</div>
    <input class="form-field" type="text" name="pers_data2[]" size="20" value="<?php if (isset($_POST['pers_data2'][0])) echo $_POST['pers_data2'][0]; ?>" required><br />
    <div class="form-title">Prénom :</div>
    <input class="form-field" type="text" name="pers_data2[]" size="20" value="<?php if (isset($_POST['pers_data2'][1])) echo $_POST['pers_data2'][1]; ?>" required><br />
    <div class="form-title">Email :</div>
    <input class="form-field" type="email" name="pers_data2[]" size="20" value="<?php if (isset($_POST['pers_data2'][2])) echo $_POST['pers_data2'][2]; ?>" required><br />
    <div class="form-title">Mobile :</div>
    <input class="form-field" type="tel" name="pers_data2[]" min="10" max="10" size="10" value="<?php if (isset($_POST['pers_data2'][3])) echo $_POST['pers_data2'][3]; ?>" required><br /><br />
    <div class="form-title" >Essaie :</div>
    <span class="form-title" style="font-size: 13px; font-style: italic;">Gagné :</span><input  type="radio" id="myRadio3" value="gagne" name="dataradio2"><span class="form-title" style="font-size: 13px; font-style: italic;"> Perdu : </span><input type="radio" id="myRadio4" value="perdu" name="dataradio2"><br />
    <div class="submit-container">
    <input class="myButton" type="submit" value="Jouer !" />
    </div>
    </form>
    </center>
    </div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-09 03:42:25

只需输入形式为z-index:100的css,它就可以工作了

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51752007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档