滚动时更新div的位置

时间:2016-03-05 09:40:54

标签: javascript jquery

对于另一个堆栈问题,我试图编写一个简短的脚本。它应该在滚动时跟踪div .list_item的位置,并将.offset().top应用到另一个div。

为了测试函数是否被触发,我在代码中写了一个console.log,这是从未见过的。 为什么我的功能在滚动时不会触发?

$(document).ready(function() {

    // fire function everytime the window is scrolled
    $(window).scroll(function(){

    // set element to relate to
    var list_items = $('div.list_item');

    // get each position
    list_items.each(function() {
      // store offset().top inside var
      var list_item_position = $(this).offset().top;
      // select previous dropdown_list item
      $(this).prev().find('ul.dropdown_list').css({
        // apply offset top
        top: list_item_position + "px"
      });
    });

    // write to console to track changes
    console.log('positions updated');

  }); // .scroll

}); // document.ready

建议赞赏!

JSFIDDLE DEMO

1 个答案:

答案 0 :(得分:0)

正如@Carlos Delgado在评论中指出的那样,$(window).scroll跟踪,如果正在滚动窗口,同时将第一行设置为$('#wrapper').scroll曲目,如果#wrapper正在滚动,效果很好。

感谢您指出这一点以及其他有用的评论!