Javascript 在Firefox中将window.innerHeight乘以非整数时出现意外结果
首先,我绝不是一个网页设计师,所以我对自己在做什么一无所知 我正在为UnityWebPlayer应用程序开发HTML/Javascript,试图让Webplayer占据浏览器的大部分(而不是全部)可视区域。页面的Javascript 在Firefox中将window.innerHeight乘以非整数时出现意外结果,javascript,html,firefox,unity3d,Javascript,Html,Firefox,Unity3d,首先,我绝不是一个网页设计师,所以我对自己在做什么一无所知 我正在为UnityWebPlayer应用程序开发HTML/Javascript,试图让Webplayer占据浏览器的大部分(而不是全部)可视区域。页面的设置为没有页边距或滚动条 <body margin="0" marginwidth="0" marginheight="0" scroll="no"> 我把这个叫做Unity网络播放器 unityObject.embedUnity("unityPlayer", "WebPl
设置为没有页边距或滚动条
<body margin="0" marginwidth="0" marginheight="0" scroll="no">
我把这个叫做Unity网络播放器
unityObject.embedUnity("unityPlayer", "WebPlayer.unity3d", winWidth, winHeight, params);
在这种设置下,一切似乎都正常工作。但是,当我将winWidth
和winHeight
乘以非整数(即0.5或1.9)时,高度在Firefox 12中没有正确缩放。不管我在那里输入了多少值,它的垂直高度总是相同的(错误的)。在这张图片中,innerHeight
和innerWidth
都乘以0.9
,正如您所看到的,高度绝对是错误的,无论我乘以多少非整数,这都是错误的高度。
这段代码在Chrome19和IE9中运行良好。如何解决这个问题?我不知道具体情况是什么,因为我不熟悉您使用的Unity JavaScript界面,但我认为很有可能您需要为播放器指定一个整数宽度和高度,而您的计算会产生一个非整数
只需编写
Math.round(winWidth*0.9)
而不是winWidth*0.9
,即可获得最接近的整数结果。…就这样做了。我以前曾尝试过直接对int
进行强制转换,但它不喜欢这样,所以我从来没有寻找过round
函数。谢谢
unityObject.embedUnity("unityPlayer", "WebPlayer.unity3d", winWidth, winHeight, params);