如何从偏移值中减去像素?

时间:2015-06-08 18:37:00

标签: javascript jquery

我有以下内容:



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;
&#13;
&#13;

但我想从pos.top减去60像素,从pos.left减去70像素

我有办法吗?如有任何帮助,请提前感谢!

1 个答案:

答案 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);