2015-06-08 3 views
0

У меня есть следующие:Как вычесть пиксели из значения смещения?

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

Но я хотел бы вычесть 60 пикселей от pos.top и 70 пикселей от pos.left

Есть ли способ, что я могу сделать что? Любая помощь приветствуется, спасибо заранее!

+1

Вы имеете в виду использование минус-оператора? 'var left = pos.left - 70'? Я не понимаю, о чем вы спрашиваете. – GolezTrol

+1

Вы имеете в виду, что вы должны спросить, как сделать 'var top = pos.top - 60'? Или я неправильно понял ваш вопрос? – Teemu

+1

Попробуйте 'pos.top - 60' и' pos.left - 70' – brroshan

ответ

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); 
+0

Отлично, спасибо! –

Смежные вопросы