2015-05-17 4 views
0

Получить позицию каждого элемента

$(function(){ 
 

 
    var $animatedEls = $(".marked"); 
 

 
    $(window).scroll(function(e) { 
 

 
      var offset = 0; 
 

 
      $.each($animatedEls, function(i, item) { 
 

 
       offset = $(item).offset().top; 
 

 
       console.log($(item).offset()); 
 

 
      }); 
 

 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<h2 class="marked">This sucks.</h2> 
 
<div>...</div> 
 
<h2 class="marked">This sucks.</h2> 
 
<div>...</div> 
 
<h2 class="marked">This sucks.</h2> 
 
<div>...</div> 
 
<h2 class="marked">This sucks.</h2> 
 
<div>...</div> 
 
<h2 class="marked">This sucks.</h2> 
 
<div>...</div> 
 
<h2 class="marked">This sucks.</h2> 
 
<div>...</div> 
 
<h2 class="marked">This sucks.</h2> 
 
<div>...</div> 
 
<h2 class="marked">This sucks.</h2> 
 
<div>...</div> 
 
<h2 class="marked">This sucks.</h2> 
 
<div>...</div> 
 
<h2 class="marked">This sucks.</h2> 
 
<div>...</div> 
 
<h2 class="marked">This sucks.</h2> 
 
<div>...</div> 
 
<h2 class="marked">This sucks.</h2> 
 
<div>...</div> 
 
<h2 class="marked">This sucks.</h2> 
 
<div>...</div> 
 
<h2 class="marked">This sucks.</h2>

Я пытаюсь получить позицию некоторых соответствующих элементов при прокрутке. Выходные данные, тем не менее, одинаковы для каждого элемента.

Выход:

Object {top: 2480, left: 0} 
Object {top: 2480, left: 0} 
Object {top: 2480, left: 0} 

Почему смещения одинакова для каждого элемента? Значения также меняются при прокрутке.

EDIT: Хорошо. Фрагмент работает здесь, но не на моем сайте. Очень раздражает.

+3

Вы можете оставить скрипку пожалуйста .. – Tushar

+1

что вы думаете, является '$ each..' ("анимированный.").? это должно быть '$ animatedEl.each..' или' $ ('. marked'). each..' – caramba

+0

Нет, это не оно. – reggie

ответ

0

Проблема заключается в использовании .each.

Следует использовать так:

var $animatedEls = $('.marked'); 

     $(window).scroll(function(e) { 

      $.each($animatedEls, function(index, item) { 
       console.log($(item).offset()); 
      } 

     } 
+0

Нет, это не имеет никакого эффекта. – reggie

+0

Вы изменили значение «this» на «item? Post fiddle plz, если да, потому что он должен работать. \ –

+0

Вы правы, он должен работать. На моем сайте должно быть что-то, что мешает результатам. – reggie

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