javascript - Three.js 渲染和 Bootstrap 网格

标签 javascript html css twitter-bootstrap three.js

我正在玩弄 three.js 和 bootstrap。但是,当使用 Bootstrap 网格时,我的立方体会像这样变平:

http://imgur.com/a/Ec2Rx

虽然在调整窗口大小时,它工作正常:

http://imgur.com/a/xpmVu

我曾尝试在 css 中修复此问题,但没有成功:

CSS

@media(min-width:768px) { 

canvas {
    display: block;
    width: 100% !important;
    height: 33% !important;
}
}

canvas {
    display: block;
    width: 100% !important;
    height: 100% !important;
}

有什么想法吗?

编辑:

我也试过使用js代码,但也没有结果:

JS:

renderer = new THREE.WebGLRenderer();
    renderer.setSize( window.innerWidth, window.innerHeight );
    document.getElementById('render').appendChild( renderer.domElement );
    window.addEventListener( 'resize', onWindowResize, false );

    render();
}

function onWindowResize() {

if (window.matchMedia('(min-width:768px)').matches) {
    renderer.setSize(window.innerWidth, window.innerHeight * 0.33);
    camera.updateProjectionMatrix();
    camera.aspect = window.innerWidth / window.innerHeight;
    render();
}

else {
    camera.aspect = window.innerWidth / window.innerHeight;
    camera.updateProjectionMatrix();
    renderer.setSize(window.innerWidth, window.innerHeight);
    render();
}

}

最佳答案

您的问题可能是您使用了 window.innerWidthwindow.innerHeight
如果您希望 three.js Canvas 填满整个窗口,使用这些很好,但看起来好像您将 three.js Canvas 放在 div 中。
您可能想使用容器 div 的宽度和高度,而不是使用 window.innerWidthwindow.innerHeight

您可能想使用 document.getElementById('myDiv').style.heightdocument.getElementById('myDiv').clientHeight 之类的东西。

关于javascript - Three.js 渲染和 Bootstrap 网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38763623/

相关文章:

html - 无法使用PDO和ajax插入数据

javascript - 为一个 div 启用滚动,但为另一个 div 锁定它

javascript - 使用javascript按下shift键时如何显示大写字母?

HTML 100% 高度大于窗口

html - 文本关闭 Show Page Rails 4

html - Safari 中的链接聚集在一起

html - 3列同级

javascript - CSS 与 LeafLet

javascript - iframe 中的 gtag 子域

jquery - 购物车/ list 但未付款