我试图在我的移动Webview中设置一个响应点,并执行以下操作:
var w = window.innerWidth-40;
var h = window.innerHeight-100;
到目前为止,这个方法效果很好,但是值-40和-100不在缩放高度和宽度的视口中。
当我这样做时:
var w = window.innerWidth-40vw;
var h = window.innerHeight-100vh;
因为它应该保持响应和相对于视口-JS不再工作了。我认为vh和vw只在CSS中工作?我如何在JS中实现这一点?
请不要使用JQuery解决方案-只有JS!
谢啦,谢啦
8条答案
按热度按时间eimct9ow1#
基于this site,您可以使用以下util函数来计算所需的值,作为屏幕宽度或高度百分比的函数:
我在我的代码中使用了this不可思议的问题!
jdzmm42g2#
试试这个:
参考:http://andylangton.co.uk/articles/javascript/get-viewport-size-javascript/
hs1rzwqc3#
问题是JS没有
40vh
,先计算40vh
是多少像素再使用,做1000 - 40vh
会抛出错误意思是
40 % of viewport height
所以window.innerHeight * 0.4 == 40vh
也没有
wh
这样的东西,只有vh
(视口高度的%)p8ekf7hl4#
如果你可以完全编辑页面,最简单的方法是创建一个css类,包含-40vw和-100vh,如下所示:
CSS:
联森:
注意:Internet Explorer 9不支持"classList"。如果您希望它在所有浏览器中都能工作,请将其用于JS:
7kqas0il5#
我想你只需要用引号把它括起来。
var w = window.innerWidth = "40vw" var w = window.innerWidth = "40vw"
1dkrff036#
这是我的解决方案,你可以使用CSS;
如何在CSS中使用?
如果您将使用100vh或100vw与此方法,您应该设置100vh/100vw为不兼容的浏览器。
示例;
kse8i1jr7#
这不是一个通用的解决方案,但如果您使用的页面总是100%显示在视口中(即,如果主体不必滚动,并且总是与窗口宽度和高度匹配),则这是一个简单得多的实现。
这只需要一行代码就可以将vh变量设置为文档主体的像素值。
对于游戏开发和其他将身体附加到视口的场景非常有用。
ncgqoxb08#
获取px中的
vmin