使用 JS 更改 CSS 中的剪辑
Change clip in CSS with JS
所以我正在制作一个 HP 条,我需要在 remainingHealth 减少时缩短 HP 条的宽度。到此为止我已经写完了。
JS
var remainingHealth =333;
function update(){
document.getElementById("nowbar").style.clip = "rect(0, remainingHealth, 90, 0)";
}
CSS
#nowbar {
position: absolute;
margin-top: -24px;
margin-left: 5px;
clip: rect(0px,666px,90px,0px)
}
我创建了一张图片来解释问题所在:
http://i.imgur.com/UAd4J3b.png
所以问题是我无法用 JS 控制宽度,所以在屏幕上宽度显示为 666px 而不是 remainingHealth(333px)。但是,当我在 style.clip 中将 remaininingHealth 更改为 333 时,它显示 333px,所以它正在工作。
所以我认为你对此的看法有点混乱。
因此,当您编写 javascript 代码时:
var remainingHealth =333;
var remainingHealth
确实等于 333。它不等于 666 或以任何方式连接到 CSS 文件,正如您在图片中暗示的那样:http://i.imgur.com/UAd4J3b.png
问题是
document.getElementById("nowbar").style.clip
需要一个字符串值,您也给它一个字符串值,您设置 document.getElementById("nowbar").style.clip
的字符串值是:
"rect(0, remainingHealth, 90, 0)"
这与在您的 CSS 文件中所做的一样:
#nowbar {
position: absolute;
margin-top: -24px;
margin-left: 5px;
clip: rect(0, remainingHealth, 90, 0);
}
您可以看到 "remainingHealth" 无效 CSS,remainingHealth 是您 javascript 代码中的一个字符串,这就是我要向您展示的内容,它不是 var remainingHealth您设置为整数值 333.
您需要做的:
document.getElementById("nowbar").style.clip = "rect(0," + remainingHealth + "px, 90, 0)";
Javascript "kind" 足以将 int var remainingHealth 转换为字符串值“333”以进行字符串连接。
所以我正在制作一个 HP 条,我需要在 remainingHealth 减少时缩短 HP 条的宽度。到此为止我已经写完了。
JS
var remainingHealth =333;
function update(){
document.getElementById("nowbar").style.clip = "rect(0, remainingHealth, 90, 0)";
}
CSS
#nowbar {
position: absolute;
margin-top: -24px;
margin-left: 5px;
clip: rect(0px,666px,90px,0px)
}
我创建了一张图片来解释问题所在: http://i.imgur.com/UAd4J3b.png
所以问题是我无法用 JS 控制宽度,所以在屏幕上宽度显示为 666px 而不是 remainingHealth(333px)。但是,当我在 style.clip 中将 remaininingHealth 更改为 333 时,它显示 333px,所以它正在工作。
所以我认为你对此的看法有点混乱。
因此,当您编写 javascript 代码时:
var remainingHealth =333;
var remainingHealth
确实等于 333。它不等于 666 或以任何方式连接到 CSS 文件,正如您在图片中暗示的那样:http://i.imgur.com/UAd4J3b.png
问题是
document.getElementById("nowbar").style.clip
需要一个字符串值,您也给它一个字符串值,您设置 document.getElementById("nowbar").style.clip
的字符串值是:
"rect(0, remainingHealth, 90, 0)"
这与在您的 CSS 文件中所做的一样:
#nowbar {
position: absolute;
margin-top: -24px;
margin-left: 5px;
clip: rect(0, remainingHealth, 90, 0);
}
您可以看到 "remainingHealth" 无效 CSS,remainingHealth 是您 javascript 代码中的一个字符串,这就是我要向您展示的内容,它不是 var remainingHealth您设置为整数值 333.
您需要做的:
document.getElementById("nowbar").style.clip = "rect(0," + remainingHealth + "px, 90, 0)";
Javascript "kind" 足以将 int var remainingHealth 转换为字符串值“333”以进行字符串连接。