如何使用JQuery和JavaScript动态获取div的长度?
我正在使用AngularJS开发一个web应用程序。我发现自己的情况是,我有一个条(使用css我创建了一行),它必须动态地拉长和缩短。 我知道JQuery脚本足以做到这一点。例如,如果我的css是这样的:如何使用JQuery和JavaScript动态获取div的长度?,javascript,html,jquery,css,Javascript,Html,Jquery,Css,我正在使用AngularJS开发一个web应用程序。我发现自己的情况是,我有一个条(使用css我创建了一行),它必须动态地拉长和缩短。 我知道JQuery脚本足以做到这一点。例如,如果我的css是这样的: .my_line{ display:block; width:2px; background: #FFAD0D; height: 200px; /*This is the part that needs to dynamically change*/ }
.my_line{
display:block;
width:2px;
background: #FFAD0D;
height: 200px; /*This is the part that needs to dynamically change*/
}
我可以在控制器中调整行的大小(在my_line
class中),只需使用:
$(".my_line").css("height", someExpression*100 + 'px');
问题是,我想根据另一个div元素的大小动态调整行的大小(或者,通常,我选择的任何HTML元素)。
我不知道如何(在运行时)获得某个页面元素的高度大小。
只有这样,我才能创建一条随着div(或其他元素)大小的变化而动态加长或缩短的线!
你是怎么做到的?因此,我将避免编写硬编码的度量值,但我希望确保它们随页面上其他元素的维度变化而变化,我希望这有助于:
$(“.my_line”).css(“height”,$(“#referenceElement”).height()*5+'px')代码>
.my\u行{
显示:内联块;
宽度:2倍;
背景:#FFAD0D;
}
#引用元素{
显示:内联块;
背景:黄色;
}
嗨,我比橙色线小5倍代码>在这里,我使用setInterval来跟踪div的高度(您也可以做width),并将其存储在以前的height变量中,并在每个间隔对其进行比较
然后根据比较,确定div的高度是否发生了变化。如果有,则会根据第一个div的高度更改另一个div的高度
您可以在同一个setInterval中创建多个变量并跟踪多个元素
$(文档).ready(函数(){
var-previousHeight=parseInt($(“#我的div”).css(“高度”);
setInterval(函数(){checkHeight();},100);
函数checkHeight(){
//检查此处元素的高度
var currentHeight=parseInt($(“#我的div”).css(“高度”);
如果(当前高度!=以前的高度){
前一高度=当前高度;
$(“动态div”).css(“高度”,parseInt(当前高度)+“px”);
}
}
$(“#按钮”)。单击(函数(){
$(“#我的div”).css(“高度”,parseInt(以前的高度)+5+“px”);
})
})
#我的div{
背景:#000000;
高度:20px;
宽度:20px;
}
#动态分区{
背景:水鸭;
高度:20px;
宽度:20px;
}
增加div高度
其他元素的高度如何变化?您是否可以使用相同的值同时更新.my_line
的高度?否,其他元素的高度会发生变化,因为该页面的用户可以动态地向表中添加行。它不是“在代码中”写的元素必须增长多少,但它肯定会增长。您可以控制添加行的代码吗?