2013-07-29 2 views
2

Как я могу получить первый элемент DOM, который виден в окне просмотра?Как получить первый элемент DOM, который виден в окне просмотра?

PS: первый DOM элемент страницы не будет первым «видимым» элементом, когда я прокручиваю в середине или в нижней части страницы

ответ

2

В виде с свитком, вам необходимо для запроса весь документ, получить позиции смещения элементов и сопоставить их с значением scrollTop. Затем запросите :eq(0) (jQuery).

EDIT: Я думаю, что этот образец будет работать, еще не опробовал его, поскольку я не могу получить доступ к какой-либо скрипке здесь, на рабочих компьютерах.

$(function() { 
    var scroll = $(window).scrollTop(); 
    var elements = $("*"); // VERY VERY bad performance tho, watch out! 
    var el; 
    for (var i=0; i<elements.length; i++) { 
     el = $(elements[i]); 
     if (el.offset().top >= scroll && el.is(':visible')){ 
      // "el" is the first visible element here! 
      // Do something fancy with it 

      // Quit the loop 
      break; 
     } 
    } 
}); 
+0

Я тестирую код, извините за этого новичка вопрос: почему я должен приложить все с функцией Jquery, а также почему я должен это сделать: Ei = $ (элементы [я]) ; вместо этого: el = elements [i] – rajeemcariazo

+1

Функция jQuery является лишь короткой рукой для '$ (document) .ready()'. И я думаю, что вы можете сделать 'el = elements [i]' прямо да, я был не совсем уверен, поэтому я играл безопасно (так как сам не могу отлаживать его) – Eric

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