在JavaScript或JQuery中将百分比值转换为像素

在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是百分比,但最大值是像素。我需要把我的成

我有一个以百分比单位表示的字符串值,将分配给高度,但在分配之前,我需要扣除top()获得的另一个高度。输出结果是
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");
    
  • 您需要使用,因为jQuery中没有像
    .top()
    那样的方法
  • 获取第一个元素的当前坐标,或设置匹配元素集中每个元素相对于文档的坐标

  • valHeight
    应该是一个数字
  • 代码

  • 您需要使用,因为jQuery中没有像
    .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-我们无法回答您的问题,除非您描述一下您试图实现的目标。您编写的代码毫无意义,因此我们需要您用文字描述您正在尝试执行的操作,然后我们可能会很容易地帮助您。