使用.offset()。top在页面上查找Elements位置

时间:2010-09-03 10:05:33

标签: jquery

我有一个DIV我想要在页面上滚动但是在折叠上面看不到它所以我正在使用它。

$(window).scroll(function() {
    // Get scrolling position of document   
    var scrollYpos = $(document).scrollTop();

    // if its more than the top of the element
    if (scrollYpos > 551 ) {

         // Add a margin to the top 
         $('#scrollingDiv').animate({'margin-top': scrollYpos - 541 }, {duration: 300, queue: false});
    } else {
         $('#scrollingDiv').animate({'margin-top': 0 }, {duration: 200, queue: false});
    }}); // end scroll

ATM我手动给它DIV的垂直位置(551px)。我想动态地做。

var elYpos = $('#scrollingDiv').offset().top

因此,这会在页面上找到元素的垂直位置,但是当元素移动时,这会改变其他部分。

我怎样才能获得元素的位置一次?

1 个答案:

答案 0 :(得分:6)

在函数之前定义变量,因此只需执行一次。

$(function(){
  var elYpos = $('#scrollingDiv').offset().top; // elYpos variable will stay as it's defined
  $(window).scroll(function(){
    var scrollYpos = $(document).scrollTop();
    if (scrollYpos > elYpos ) {
    // and rest of tour code...
  });
});