2012-04-26 5 views
5

Tôi đang sử dụng Three.js. Có một trang web html với hai phần tử div, có thể kết xuất chỉ trong một phần tử div không?Render Three.js thành một phần tử div

HTML Code:

<body> 
    <div id="twocols"> 
     <div id="detailinfo"> 
      <span class="c">Detailinformationen:</span><br/> 
      <span id="tb" class="g"></span><br/> 
      <span class="c">Grafiken:</span> 
      <div id="chart"></div> 
      <div id="chart2"></div> 
     </div> 
     <div id="city"> 
     </div>     
    </div>  
</body> 

tôi muốn làm vào div thành phố.

Three.js Code:

function initScene() { 

      //container = document.createElement('div'); 
      //document.body.appendChild(container); 

      scene = new THREE.Scene(); 
      createCamera(); 
      createLight(); 
      createProjector(); 
      createRenderer(); 
      createControls(); 

      //... 
     } 

createRenderer:

function createRenderer() { 
      renderer = new THREE.WebGLRenderer({ 
       antialias : ANTIALIAS, 
       preserveDrawingBuffer : DRAWINGBUFFER 
      }); 

      renderer.setSize(document.getElementById("city").offsetWidth, document.getElementById("city").offsetHeight); 
      document.getElementById("city").appendChild(renderer.domElement); 

      THREEx.Screenshot.bindKey(renderer); // add the printscreen shortcut with "p" 
     } 

createControls:

function createControls() { 
      controls = new InteractionManager(camera, document.getElementById("city")); 
      //... 
     } 

InteractionManager.js

initialize: function(camera, domElement) { 

    this.object = camera; 
    this.domElement = (domElement !== undefined) ? domElement : document; 
    this.target = new THREE.Vector3(0, 0, 0); 
    //this.chartManager = new ChartsManager(); 

    if (this.domElement === document) { 
     this.viewHalfX = window.innerWidth/2; 
     this.viewHalfY = window.innerHeight/2; 
    } else { 
     this.viewHalfX = this.domElement.offsetWidth/2; 
     this.viewHalfY = this.domElement.offsetHeight/2; 
     //alert(domElement.offsetWidth + " " + domElement.offsetHeight); 
     //this.domElement.setAttribute('tabindex', -1); 
    } 

    //... 
}, 

cho đến nay ..

+0

Hi, tôi cập nhật bài viết đầu tiên của tôi. – MrGreen

Trả lời

3

Thay vì:

container = document.createElement('div'); 

Sử dụng:

container = document.getElementById('city'); 
+0

cảm ơn bạn, tại thời điểm này tôi không sử dụng container nữa, nhưng không làm việc như vậy cho. – MrGreen

+0

Khó nói. Sử dụng trình gỡ lỗi (F12). Kiểm tra những gì bạn nhận được từ 'document.getElementById (" city ")'. Và về câu hỏi ban đầu của bạn, về hiển thị trong một div, hãy xem ví dụ này: http://jsfiddle.net/eLudu/ –

+0

Fiddle ở trên không làm việc cho tôi, Juan. Chỉ hiển thị một ô có viền không có gì trong đó. –