Javascript 在 View 中滚动并停止

标签 javascript jquery

我有这个代码:

            function Scroll(aid){
                var aTag = $(\"a[name='\"+ aid +\"']\");
                $('html,body').animate({scrollTop: aTag.offset().top},'slow');
            }

但问题是,它向下滚动到标签,因此它位于窗口的顶部。我确实喜欢它,所以它只滚动到元素,因此它位于窗口底部。

因此您可以看到元素顶部的内容(就像其上方的所有其他内容一样)。

有什么想法吗?

最佳答案

找出视口(viewport)的高度,然后减去它:

var pos = Math.max(aTag.offset().top - $(window).height(), 0);
$('html,body').animate({scrollTop: pos },'slow');

您可能需要添加一个小的偏移量。

关于Javascript 在 View 中滚动并停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19010321/

相关文章:

javascript - knockout 修改计算内的 ObservableArray

javascript - javascript中的函数链

javascript - 如何组合和选择 JSON 调用?

html - jQuery 食谱数量计算器

javascript - 为什么AJAX函数不立即从数据库获取数据?

javascript - 我可以使用源映射将 .less 更改为 a.min.css 并且仍然能够在开发工具中查看 .less 文件吗?

javascript - CKEditor 高度随着使用打字而增长

javascript - 调用重置但在 FORM 之外?

php - 计算日期时间集之间的总时间

javascript - 为什么这个 prototypjs observe 对回调函数有绑定(bind)?