0

我有一个在点击时展开的 div,有时它位于页面底部并且靠近底部。我想要的是,当它接近底部时,它应该向下滚动到它的正下方。

到目前为止,我的解决方案如下。我知道如何计算值并为所有内容设置动画,但我只是不明白为什么我的脚本要滚动到页面底部,它只是将其猛烈撞击到底部。有任何想法吗?

编辑
Doh 因为它的滚动到底部。问题是我如何滚动使其在我的 div 下方 10px 处?我不想说scrollTop: total

jQuery

       var $ediv = $this.parent('div').find('.order-expand-row');
       var hDiv = $ediv.outerHeight();
       var oDiv = $ediv.offset().top;
       var wHeight = $(window).height();
       var total = hDiv + oDiv + 10;

       if (total >= wHeight) {                                   
          $('html, body').animate({ scrollTop: total }, 600);
       }
4

1 回答 1

0

一杯茶可以变魔术;)

通过减去wHeightfrom来解决它total,这让我得到了我需要滚动到的值。为了清除它,我需要的是我想要滚动停止的位置而不是它应该滚动到的位置。

   var $ediv = $this.parent('div').find('.order-expand-row');
   var hDiv = $ediv.outerHeight();
   var oDiv = $ediv.offset().top;
   var wHeight = $(window).height();
   var total = hDiv + oDiv + 10;
   var scrollTo = total - wHeight; //the scroll position

   if (total >= wHeight) {                                   
      $('html, body').animate({ scrollTop: scrollTo }, 600);
   }
于 2012-10-10T08:28:44.440 回答