Сравните данные, собранные с jquery каждой функции

Что я хочу сделать, это сравнить каждый элемент смещения друг с другом и получить тот, который находится ближе к верхней части окна, а затем сделать что-то с этим конкретным элементом

$(".slide").each(function(index, el) {
   var $this = $(this);
   var offset = $this.offset().top - $(window).scrollTop();
});

так что в основном, если я печатаю смещение через console.log и у меня есть для каждого элемента, имеющего slide учебный класс,

В настоящее время я получаю эти значения:

slide1 = -875
slide2 = 250
slide2 = 850
slide4 = 1375

Слайд 2 в данный момент является ближайшим к 0, поэтому слайд 2 будет тем div, с которым я бы хотел что-то сделать...

Надеюсь, я достаточно ясен!

1 ответ

Решение

Вы были уже совсем близко от вашей цели

var found=null;
var found_top=0;
$(".slide").each(function(index, el) {
    var $this = $(this);
    var offset = $this.offset().top - $(window).scrollTop();
    if( ( found == null ) || ( ( offset >= 0 ) && ( offset < found_top ) ) ){
        found=this;
        found_top=offset:
    }
});
/** do something with found here **/
Другие вопросы по тегам