jQuery возвращает неправильные позиции элементов в Chrome по сравнению с FF и IE - PullRequest
0 голосов
/ 24 августа 2011

Я пишу функцию для проверки положения полосы прокрутки относительно предопределенных позиций элементов, которые я сохранил в массиве.На странице может быть любое количество элементов этого типа, поэтому я использую цикл for для проверки положения полосы прокрутки.

Этот код отлично работает в Firefox, но по какой-то причине jQuery возвращаетсовершенно разные позиции для каждого из моих элементов .post-info ($ pi) в Chrome, и даже ошибается $ (document) .height.Это проблема с моим JavaScript или с моим CSS?Я приму свой JS, поскольку я проверил свою позицию: относительно большинства элементов в моем css.

Вот jQuery, который я использую:

(function(){
var i,
st,
length,
arrPos = []

  $wn = $(window);
  $pi = $('.post-info');

  $pi.each(function(){
    arrPos.push($(this).offset().top - 80); // offset -80 so new item sticks quicker.
  });
  height = $(document).height();
  arrPos.push(height); // add bottom position of document to array for last item.

  length = arrPos.length;           
  $wn.scroll(function(){ //Scroll Event Listener
    st = $wn.scrollTop();
    for(i=0; i<=length; i++){
       // i = index, n = next
       n = i+1;
       if(st > arrPos[i] && st < arrPos[n]) _stick(i);
    }
});

Большое спасибо.

1 Ответ

1 голос
/ 24 августа 2011

Google Chrome устанавливает высоту и ширину после $ (документ) .ready Если у вас есть какие-либо изображения, тогда размеры вашей страницы не будут правильными в данный момент. Попробуйте предварительно загрузить изображения и, когда это будет сделано, затем вызвать вашу функцию. Надеюсь, что это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...