javascript - CSS 不适用于设置 Canvas 大小?

标签 javascript html css three.js

我不确定为什么此 html 中有以下 css:

<!DOCTYPE html>
<html>
    <head>
        <title>Three.js</title>
        <style>
            body {
                margin: 0;
            }
            canvas {
                display: block;
                width: 100%;
                height: 100%;
            }
        </style>
    </head>
    <body>
        <script src = "three.js"></script>
        <script src = "script.js"></script>
    </body>
</html>

似乎不影响 script.js:

var resolutionDivisor = 2;

var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);

var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth / resolutionDivisor, window.innerHeight / resolutionDivisor);
document.body.appendChild(renderer.domElement);

var geometry = new THREE.BoxGeometry( 1, 1, 1 );
var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
var cube = new THREE.Mesh( geometry, material );
scene.add( cube );

camera.position.z = 5;

var render = function () {
    requestAnimationFrame( render );

    cube.rotation.x += 0.01;
    cube.rotation.y += 0.01;

    renderer.render(scene, camera);
};

render();

我正在尝试让three.js以一半的屏幕分辨率渲染,以提高渲染速度,并使用CSS将 Canvas 拉伸(stretch)到屏幕大小,但CSS似乎并没有影响 Canvas ,所以 Canvas 不占全屏。

我正在使用谷歌浏览器。

可以找到下载here .

最佳答案

问题是您正在设置渲染器大小,如下所示。

renderer.setSize(window.innerWidth / resolutionDivisor, window.innerHeight / resolutionDivisor);

因此您的 Canvas 将始终以主体高度和宽度的一半呈现。

此外,canvas 通过在 canvas 元素本身上放置 width/height 属性来工作。可以在此处找到有关使用 !important 的 hacky/不完整工作 http://jsfiddle.net/thewolff/3onsp221/2/ .

但实际上您应该在调整窗口大小时更新宽度/高度以保持比例准确。

关于javascript - CSS 不适用于设置 Canvas 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28441505/

相关文章:

javascript - 将测试选项与相应的 `radio` 按钮对齐

javascript - 只选择一个元素,而不是所有元素 - jQuery

javascript - 如何知道 materialize css modal 是否打开

javascript - 多个按钮仅显示按钮内容

javascript - Office 365、Sharepoint、Html <h1> 内容列表

html - css 宽度 0 和 overflow 在 safari 中的隐藏问题

javascript - Scala 中的粘 cookies

javascript - 如何将数组从 struts2 散列到未指定大小的 javascript 数组?

javascript - 如何使用 jquery ui only datepicker with date month?

html - 如何用标题设计商标样式