0

我在这里有一个简单的代码,可以将工具提示的上边距提高它的高度。

$("#tooltip").css({'marginTop':'-' + $("#tooltip").height});

我正在使用带有 UI 1.9.2 的 jQuery 1.9.1,但不确定为什么这不起作用。

tooltip 是元素,margintop 应该设置为-+tooltip.height

例子
tooltip.height = 50px, margin-top:-50px;

有人可以指出我的错误吗?
谢谢

4

3 回答 3

2

试试下面的:

$("#tooltip").css("margin-top", function() { 
    return -1 * $(this).outerHeight() // <== Multiplies outerHeight() by -1 and returns the result
});

在这种情况下,如果$.css()接收到一个数字,它会自动转换为带有 'px' 的字符串。如果它接收到一个字符串,它假定该值是完整的并且应该按原样设置。

以下内容也可以:

// Passing in a number
$("#tooltip").css({'marginTop':  - $("#tooltip").outerHeight()});
$("#tooltip").css({'marginTop':  -1 * $("#tooltip").outerHeight()});
$("#tooltip").css('marginTop',  - $("#tooltip").outerHeight());
$("#tooltip").css('marginTop',  -1 * $("#tooltip").outerHeight());

// Passing in a string with units specified
$("#tooltip").css({'marginTop':  '-' + $("#tooltip").outerHeight() + 'px'});
$("#tooltip").css('marginTop',  '-' + $("#tooltip").outerHeight() + 'px');

虽然这会失败,因为结果字符串"-20"是 marginTop 的无效 css 值:

$("#tooltip").css({'marginTop':  '-' + $("#tooltip").outerHeight()});

如果您想使用百分比或 em 设置值,则字符串形式很有用:

$("#tooltip").css({'marginTop':  "2em"});
$("#tooltip").css({'marginTop':  "10%"});
于 2013-09-07T16:32:42.163 回答
0
$("#tooltip").css({ marginTop: - $("#tooltip").outerHeight() + 'px' });
于 2013-09-07T16:38:03.383 回答
0
$("#tooltip").css("margin-top", function() { return $(this).outerHeight() });
于 2013-09-07T16:27:23.023 回答