[英]Converting Percent value to pixel in JavaScript or JQuery
我有一個以百分比為單位的字符串值,該字符串值將分配給高度,但是在分配之前,我需要減去top()得到的另一個高度,輸出結果為NaN
,我的代碼如下:
var valHeight = "50%";
var result = valHeight - $("#item").css("top");
$("#AnotherItem").height(result);
由於valHeight
是字符串,%和height是像素,結果將為NaN
。 我該如何解決這個問題? valHeight
是百分比,但最高值是像素。 我需要以百分比表示結果。讓我們進一步闡明:我想使用CSS的calc函數,並且我猜下面的代碼是正確的:
$('#AnotherItem').css('height', valHeight).css('height', '-='+itemOffsetTop);
唯一的問題是我想在動畫函數中使用減值。
我發現您的代碼有兩個問題:
valHeight
是字符串,而不是數字。 在數學運算中使用它之前,它必須是一個數字。 .top()
。 也許您打算使用.offset().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
是一個字符串,您需要將其轉換為數字。
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);
.offset()
因為沒有方法.top()
jQuery中 獲取第一個元素的當前坐標,或設置匹配元素集中相對於文檔的每個元素的坐標。
valHeight
應該是一個數字 碼
var valHeight = 50; //Or, parseInt("50px")
var result = valHeight - $("#item").offset().top;
$("#AnotherItem").height(result + "px");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.