【发布时间】:2009-08-18 10:56:43
【问题描述】:
我正在编码的页面上有这张图片,应该根据一些变量调整大小并水平和垂直居中。我不能为此使用 CSS 表,因为宽度和高度变量是动态的。因此,我想让 javascript 为这个特定图像的样式添加两个额外的参数(顶部和左侧)。
我试过这个(在我看来这很明智)
function getStyleSheet() {
for(var i=0; i<document.styleSheets.length; i++) {
var sheet = document.styleSheets[i];
if(sheet.title == 'StyleSheet') {
return sheet;}
}
}
var rule_sheet = getStyleSheet();
function changeText() {
rule_sheet.insertRule(".className { top:" (-(.5*newHeight))+ "; left:" +(-(.5*newWidth))+ ";}");
showRules();
}
我也尝试向图像添加内联样式,如下所示:(在调整图像大小的函数中)
$(this).style.top= (-(.5*newHeight));
$(this).style.left= (-(.5*newWidth));
这两种解决方案都不起作用,而对我来说,这两种方法似乎都是可行的。我错过了什么?
编辑:我意识到我没有在其中添加后缀“px”,但是这样做之后,它仍然不起作用:(
编辑二: 在 NickFitz 提示后,我将最后一段代码重写为:
$(".className").each(function() {
$(this).css("top", (-(.5*newHeight)), 2);
$(this).css("left", (-(.5*newWidth)), 2);
});
这确实改变了它的外观。不是我想要的方式,但至少我离解决方案有点近了。
【问题讨论】:
-
图像居中的代码也是错误的。 {左:50%;顶部:0.5*高度; margin-left: .5*width;} 是正确的方法。不过没关系。
标签: javascript jquery css