Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   offset() считает по разному (https://javascript.ru/forum/misc/28441-offset-schitaet-po-raznomu.html)

makcstroi 19.05.2012 22:07

offset() считает по разному
 
добрый день!
при первой загрузке браузера console.log($("#area").offset()) выдаёт одну величину (301), при обновлении браузера выдаёт другую величину (693). Подскажите в чём причина, и как добиться возвращения одной единственно правильной величины.
Спасибо!

vadim5june 19.05.2012 22:53

Я могу предположить что нельзя использовать в данном случае ready а надо писать по событию load
window.onload= function(){console.log($("#area").offset())}

observer 19.05.2012 23:08

Цитата:

Сообщение от vadim5june (Сообщение 175471)
...по событию load
window.onload= function(){

Вы сейчас взяли и стерли все обработчики (window.onload) написанные до этой строки... а вдруг они были кем-то до вас определены?

И уж если вы используете jQuery, то через него событие и привязывайте.

vadim5june 19.05.2012 23:21

Цитата:

Сообщение от observer (Сообщение 175474)
Вы сейчас взяли и стерли все обработчики (window.onload) написанные до этой строки... а вдруг они были кем-то до вас определены?

И уж если вы используете jQuery, то через него событие и привязывайте.

сейчас нужно лишь определить причину-может и не в этом дело-а что делать потом пусть автор решает

makcstroi 19.05.2012 23:33

windows.onload = ...
увы не помогло

vadim5june 19.05.2012 23:34

Приведите код если не большой

makcstroi 19.05.2012 23:36

window.onload= function(){ // было $(document).ready(function() {

var coords = $("#area").offset();
var coordY = coords.top; //координата Y окна area
var coordX = coords.left; //координата Х окна area

console.log(coordX);

var step = 10000 / $("#area").width(); // 1пиксель = step рублей
$("#area").click(function(e) {
var x = e.clientX;
var y = e.clientY ;
var summ = Math.round((x - coordX)*step)+5000;
var left = x - coordX+15;
console.log(left);
$("#counter").text(summ);
$("#x").css({
"left" : left
});
});
};

makcstroi 19.05.2012 23:37

это должен быть ползунок, изменяющий сумму от и до

makcstroi 19.05.2012 23:40

что характерно offset.left меняет своё значение, а offset.top - нет

makcstroi 19.05.2012 23:44

блок с id=area находиться приблизительно-примерно в середине экрана, именно его координаты (левого верхнего угла и требуется найти). Это рабочая область ползунка


Часовой пояс GMT +3, время: 01:06.