我有以下内容:
setTimeout(function() {
$(".htmltooltip").click(function() {
var tooltip_content = $(this).attr("data-tooltip-content");
var pos = $(this).offset();
var top = pos.top;
var left = pos.left;
$("body").append(function() {
$(this).append('<div style="top:' + top + 'px !important;left:' + left + 'px !important;" class="htmltooltip_content">' + tooltip_content + '</div>');
});
});
}, 100);
&#13;
但我想从pos.top减去60像素,从pos.left减去70像素
我有办法吗?如有任何帮助,请提前感谢!
答案 0 :(得分:1)
您可以简单地减去所需的像素数量。 jQuery .offset()
返回一个带有数值的对象:
{top: 20, left: 30}
所以只需将追加行更改为:
$("body").append(function() {
$(this).append('<div style="top:' + (top - 60) + 'px !important;left:' + (left - 70) + 'px !important;" class="htmltooltip_content">' + tooltip_content + '</div>');
});
虽然我建议像这样保持清洁:
setTimeout(function() {
$(".htmltooltip").click(function() {
var tooltip_content = $(this).attr("data-tooltip-content");
var pos = $(this).offset();
var top = pos.top - 60;
var left = pos.left - 70;
$("body").append(function() {
$(this).append('<div style="top:' + top + 'px !important;left:' + left + 'px !important;" class="htmltooltip_content">' + tooltip_content + '</div>');
});
});
}, 100);