Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript基于窗口高度设置左绝对位置_Javascript_Html_Css - Fatal编程技术网

javascript基于窗口高度设置左绝对位置

javascript基于窗口高度设置左绝对位置,javascript,html,css,Javascript,Html,Css,我想根据window.innerHeight移动绝对位置div。例如,如果win高度为700px,则div的样式为left:100px,如果win高度为600px,则样式为left:78px 请告诉我怎么计算。我试图使用回归线性公式,但老实说,我感到困惑 PS:我不想使用CSS媒体查询,它确实需要根据窗口高度做出响应。我知道您要求的是JS解决方案,但是。。 您是否尝试过通过定义响应/条件样式类 @media screen( height: 700px ){ /* min-height, max-

我想根据window.innerHeight移动绝对位置div。例如,如果win高度为700px,则div的样式为left:100px,如果win高度为600px,则样式为left:78px

请告诉我怎么计算。我试图使用回归线性公式,但老实说,我感到困惑


PS:我不想使用CSS媒体查询,它确实需要根据窗口高度做出响应。

我知道您要求的是JS解决方案,但是。。 您是否尝试过通过定义响应/条件样式类

@media screen( height: 700px ){ /* min-height, max-height, etc */
  div{
    left: 100px;
  }
}
@media screen( height: 600px ){ /* min-height, max-height, etc */
  div{
    left: 78px;
  }
}
在JS中,您可以使用:

var divs = document.querySelector('div');
var left = (window.innerHeight == 700) ? 100 : 78 ;
for(var div in divs){
   div.style.left = left + 'px';
}
你也可以使用数学:

var refLeft = 100, refHeight = 700;
var newHeight = window.innerHeight();
var left = newHeight * refLeft / refHeight;
然后:

var divs = document.querySelector('div');
for(var div in divs){
   div.style.left = left + 'px';
}
您可以使用vh单位而不是像素,也可以使用calc功能

在本例中,请查看战利品及其工作原理:

html,正文{ 身高:100%; } .我的身高{ 宽度:100px; 身高:100%-20%; 位置:相对位置; 显示:内联块; 背景色:青色; 颜色:000; } .我的身高{ 宽度:100px; 高度:40vh; 位置:相对位置; 显示:内联块; 背景颜色:绿色; 颜色:fff; } 这将使用总高度的80%和“计算” 这将使用40%的视口高度和“vh”
到目前为止你试过什么?你的代码在哪里?老实说,我不知道使用线性回归。因此,还没有代码完成:您是否尝试使用“vh”视口高度而不是“px”?这是基本的数学?y=m*x+b是a。你得了两分:700 | 100分和600 | 78分,你能解决它。是的,基础数学。我需要学更多的数学。无论如何,使用vh似乎解决了问题@乔迪弗洛雷斯,请把它作为答案,这样我就可以接受了。谢谢你,但正如我所说的,我不想使用CSS媒体查询。还有窗户。内部高度不只是在700到800之间。不,我没有-1你,我为什么要?vh单位解决了我的问题,我和你没有问题。哈哈。。对不起。是别人干的。