【问题标题】:Using jQuery to calculate offset in an absolutely positioned container使用 jQuery 计算绝对定位容器中的偏移量
【发布时间】:2013-08-27 20:14:43
【问题描述】:

我的所有内容都在一个绝对容器内,#content,它是 100% 的宽度和高度。所以滚动时,我们滚动的是容器,而不是正文。

我正在尝试计算页面内一系列部分的偏移量,如下所示:

$('.advance').on("click", function(){
     var nextSection = $(this).parent('.section').next('.section');

     var nextDistanceTop = nextSection.offset().top - 25;

     $("#content").animate({ scrollTop: nextDistanceTop });
});

因为容器是绝对定位的,所以 offset().top 给了我从视口顶部的偏移量。我需要计算相对于屏幕/标题顶部或滚动位置的偏移量。还有其他解决方法来完成此操作吗?

这里是一个例子:http://jsfiddle.net/pkxDY/6/

【问题讨论】:

  • jsfiddle.net上创建一个演示怎么样?
  • 好的,我会放一张
  • 这里是:jsfiddle.net/pkxDY/6
  • $("body").scrollTop() 有效吗?我认为您需要将其添加到绝对定位元素的 offset().top 以获取元素出现的距离
  • 那不会是计算从顶部偏移的部分,你能不能叉出一个小提琴来展示你的想法?

标签: jquery scroll offset


【解决方案1】:

使用自己的jQueryscrollTop方法:

$('.advance').on("click", function(){
   var nextSection = $(this).parent().next();
   var nextDistanceTop = nextSection.offset().top + $("#content").scrollTop();
   $("#content").animate({ scrollTop: nextDistanceTop });
});

【讨论】:

    猜你喜欢
    • 2013-08-24
    • 2012-03-16
    • 2017-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 2020-03-02
    相关资源
    最近更新 更多