在JavaScript或JQuery中将百分比值转换为像素
我有一个以百分比单位表示的字符串值,将分配给高度,但在分配之前,我需要扣除top()获得的另一个高度。输出结果是在JavaScript或JQuery中将百分比值转换为像素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个以百分比单位表示的字符串值,将分配给高度,但在分配之前,我需要扣除top()获得的另一个高度。输出结果是NaN,我的代码如下: var valHeight = "50%"; var result = valHeight - $("#item").css("top"); $("#AnotherItem").height(result); 由于valHeight是字符串,百分比和高度是像素,因此结果将是NaN。我该如何解决这个问题?valHeight是百分比,但最大值是像素。我需要把我的成
NaN
,我的代码如下:
var valHeight = "50%";
var result = valHeight - $("#item").css("top");
$("#AnotherItem").height(result);
由于valHeight
是字符串,百分比和高度是像素,因此结果将是NaN
。我该如何解决这个问题?valHeight
是百分比,但最大值是像素。我需要把我的成绩作为百分比
让我们进一步澄清:
我想使用CSS的calc函数,我想下面的代码是正确的:
$('#AnotherItem').css('height', valHeight).css('height', '-='+itemOffsetTop);
唯一的问题是我想在动画函数中使用减去的值。我发现您的代码有两个问题:
valHeight
是字符串,而不是数字。在数学运算中使用它之前,它必须是一个数字李>
.top()
。也许你想用它var valHeight = 50;
var result = valHeight - $("#item").offset().top;
$("#AnotherItem").height(result + "px");
现在,您将您的问题修改为使用
50%
,但实际上没有意义。如果希望结果为$(“#item”).offset().top
的50%,则可以使用以下内容:
var valHeight = 0.5;
var result = $("#item").offset().top * valHeight;
$("#AnotherItem").height(result + "px");
我发现您的代码存在两个问题:
valHeight
是字符串,而不是数字。在数学运算中使用它之前,它必须是一个数字李>
.top()
。也许你想用它var valHeight = 50;
var result = valHeight - $("#item").offset().top;
$("#AnotherItem").height(result + "px");
现在,您将您的问题修改为使用
50%
,但实际上没有意义。如果希望结果为$(“#item”).offset().top
的50%,则可以使用以下内容:
var valHeight = 0.5;
var result = $("#item").offset().top * valHeight;
$("#AnotherItem").height(result + "px");
.top()
那样的方法valHeight
应该是一个数字.top()
那样的方法valHeight
应该是一个数字valHeight
是一个字符串,您需要将其转换为数字
var varlHeight = parseInt("50px");
秒
您的$(“#item”).top()
无效,请改用此选项
$("#item").offset().top
将它们放在一起
var valHeight=parseInt("50px");
var result= valHeight - $("#item").offset().top;
$("#AnotherItem").height(result);
更新
因为你已经用“50%”的值更新了你的帖子。不如改用这种方法
var valHeight="50%";
var itemOffsetTop = $("#item").offset().top;
$('#AnotherItem').css('height', valHeight).css('height', '-='+itemOffsetTop);
首先
valHeight
是一个字符串,您需要将其转换为数字
var varlHeight = parseInt("50px");
秒
您的$(“#item”).top()
无效,请改用此选项
$("#item").offset().top
将它们放在一起
var valHeight=parseInt("50px");
var result= valHeight - $("#item").offset().top;
$("#AnotherItem").height(result);
更新
因为你已经用“50%”的值更新了你的帖子。不如改用这种方法
var valHeight="50%";
var itemOffsetTop = $("#item").offset().top;
$('#AnotherItem').css('height', valHeight).css('height', '-='+itemOffsetTop);
在jQuery中是否有
.top()
这样的方法?哪一个是百分比值?valHeight是百分比值?您实际想要实现的是什么?请用文字描述,因为您的代码(从50%
中减去.top()
)确实没有意义,因为它不是合法操作,也不清楚您试图做什么。是否有.top()这样的方法
在jQuery中?哪一个是百分比值?valHeight是百分比值您实际想要实现的目标是什么?请用文字描述,因为您的代码(从50%
中减去.top()
)确实没有意义,因为它不是合法操作,也不清楚您试图执行的操作。请查看更新。ValHeight值以百分比为单位,top为像素。若要在动画功能中使用值,请参阅更新。ValHeight值以百分比为单位,top为像素。如果我想在动画功能中使用值,该怎么办?@Mehrdad-现在你的问题没有真正意义(从50%中减去.top
)。你想完成什么?是否希望结果为50%
的$(“#项”).offset().top
?如果是这样,您将使用var result=$(“#item”).offset().top*0.5代码>实际上这里的50%是用来表示身高的。@Mehrdad-我们无法回答您的问题,除非您描述一下您试图实现的目标。您编写的代码毫无意义,因此我们需要您用文字描述您正在尝试做什么,然后我们可能会很容易地帮助您。@Mehrdad-现在您的问题没有真正意义(从50%中减去.top
)。你想完成什么?是否希望结果为50%
的$(“#项”).offset().top
?如果是这样,您将使用var result=$(“#item”).offset().top*0.5代码>实际上这里的50%是用来表示身高的。@Mehrdad-我们无法回答您的问题,除非您描述一下您试图实现的目标。您编写的代码毫无意义,因此我们需要您用文字描述您正在尝试执行的操作,然后我们可能会很容易地帮助您。