Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Разные занчения положения элемента на странице в зависимости от варианта обновления страницы
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Разные занчения положения элемента на странице в зависимости от варианта обновления страницы

Страниц (1): [1]
 

1. Albertino - 09 Июля, 2012 - 17:53:07 - перейти к сообщению
Проблема заключается в следующем:
Есть функция подсчета положения элемента(div) относительно родителя(table), которая вызывается в документ реди
CODE (javascript):
скопировать код в буфер обмена
  1. var pos_blog = $("#blog_pos")[0].offsetTop;
  2.         var pos_news = $("#news_pos")[0].offsetTop;
  3.  
  4.         if(pos_blog>pos_news){
  5.                 var razn = pos_blog - pos_news;
  6.                 id_o = "news_pos";
  7.         }
  8.         else{
  9.                 var razn = pos_news - pos_blog;
  10.                 id_o = "blog_pos";
  11.         }
  12.         $("#"+id_o).css("margin-top", razn+"px");
  13.  
  14.         console.log("pos_blog: "+pos_blog);
  15.         console.log("pos_news: "+pos_news);

(так же были рассмотрены варианты этой функции на чистом js, только на jQuery и смешанный вариант, так же подсчет шел разными способами)
И вот при обычном обновлении страницы(F5) считает одно(в моем случае получаю 108), а при обновлении страницы с очисткой кеша (Ctrl+F5) или при первом заходе на страницу(если стоит очистка кеша после закрытия браузера) получаю другое число - 122, те теряется куда-то 14 px.
В чем вообще может быть проблема, почему по разному считает положение элемента
2. armancho7777777 - 09 Июля, 2012 - 19:25:51 - перейти к сообщению
Что Вы хотите реализовать?
3. IllusionMH - 09 Июля, 2012 - 19:49:31 - перейти к сообщению
Albertino, jQuery.ready происходит раньше, чем onload.
Т.е. до того момента когда загрузятся все изображения. Когда обновляется страница - изображения не нуждаются в загрузке и отображаются мгновенно. Отсюда и разные показания.

Выход: либо использовать window.onload, либо объясните зачем, а там еще подумаем.
4. tuareg - 09 Июля, 2012 - 22:36:32 - перейти к сообщению
IllusionMH пишет:
Albertino, jQuery.ready происходит раньше, чем onload.
Т.е. до того момента когда загрузятся все изображения. Когда обновляется страница - изображения не нуждаются в загрузке и отображаются мгновенно. Отсюда и разные показания.

Выход: либо использовать window.onload, либо объясните зачем, а там еще подумаем.

Можно не думать Улыбка , а просто использовать
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $(window).load(function () {
  3.   // манипуляции с готовой страницей
  4. });
  5.  
5. Albertino - 10 Июля, 2012 - 09:40:02 - перейти к сообщению
tuareg пишет:
Можно не думать Улыбка , а просто использовать

Спасибо за подсказку, только вот теперь видно как элементы меняют свою позицию (Все это задумывалось, чтобы выровнять два элемента на странице), но с этим уже ничего не поделаешь.

 

Powered by ExBB FM 1.0 RC1