Эффективное прослушивание JS .scroll ()

У меня есть прокручиваемый элемент с множеством дочерних элементов и тегом select с соответствующими параметрами.

Я хочу изменить значение выбора на основе элементов .scrollTop ()

Как это сделать эффективно? Я подумал о том, чтобы сохранить детский .offset (). Top в массиве и перебрать его. Однако браузер с этим не справляется. Я мог бы попробовать создать флаг .setTimeout () , но это не кажется чистым.

    r = $('ul')
    offsets = []
    r.find('li').each((index) ->
      offsets[index] = $(this).offset().top
    )
    r.bind('scroll', ->
      // while loop checking .scrollTop() > offsets[n] is slow
      // maybe spams to many .scroll events?
    )
5
задан mreq 19 February 2012 в 22:34
поделиться