Angularjs$anchorScroll.yOffset不适用于ng粘性标头

Angularjs $anchorScroll.yOffset is not working for ng-sticky headers

本文关键字:ng 适用于 anchorScroll yOffset 不适用 Angularjs      更新时间:2023-09-26

我的项目构建在Angular Material、Angular JS上,我使用ngSticky将标题粘贴在主标题(这是一个md工具栏)下面。

在第二个标题(粘性)中,有一堆按钮,它们应该作为滚动到同一页面中不同部分的链接。(单击按钮后,页面应滚动到相应的部分)。

我使用了以下代码

角度控制器

$anchorScroll.yOffset = 100;  
$location.hash(anchor);
$anchorScroll();

HTML

<div sticky offset="65" media-query="min-width: 1000px" style="background-color:white; border-bottom: 1px solid #CFCFCF;">
    <ng-include src="'XXX/XXX-buttons.html'"></ng-include>
    <div class="space-top-bottom"></div>
    <ng-include src="'XXX/XXX-links.html'"></ng-include>
</div>

请注意,链接在'<ng-include src="'XXX/XXX-links.html'"></ng-include>'

目前,页面滚动但没有正确的位置,它忽略了粘性标题的高度。

根据Angular JS dos的说法,"为了使yOffset正常工作,滚动应该发生在文档的根上,而不是某个子元素上。"

预期行为:页面应该滚动到准确的div id。

问题:

无法将添加偏移量添加到补偿页眉(粘滞)高度的滚动中。

感谢您的帮助。

我找到了以下解决方案,

$location.hash('current-div');
$anchorScroll();
$('#scrolling-div').animate({ scrollTop: $('#current-div').position().top - $('#sticky-div').height() }, "slow");

这个想法是在有scoll的div上设置动画,而不是在父div上。

希望这能帮助到别人。