$ window.scrollY,window.scrollY和window.pageYOffset在angularjs中没有任何工作

问题描述 投票:0回答:1

我尝试了所有我知道的可能性,并且我在Stackoverflow中找到了获得window.scrollY值,它总是给我“0”甚至与window.scrollX相同。拜托,有人可以告诉我我做错了什么吗?

我试过$window.scrollY$document[0].documentElement.scrollTop$document[0].documentElement.scrollLeft$window.pageYOffsetangular.element($window)没有什么对我有用。

这是我的代码片段(角度方式)

在下面的代码中

  1. topOfNav工作得很好
  2. fixNav正在触发滚动事件
  3. eventListener工作得很好
  4. window.scrollY不工作,我总是零。 $timeout(function () { var nav = angular.element($document[0].querySelector("#main")); // getting this offsetTop value var topOfNav = nav.prop('offsetTop'); var fixNav = function () { console.log(topOfNav, $window.scrollY); }; // this is working great, it is listening to scroll event $window.addEventListener('scroll', fixNav, true); });

为了测试我尝试创建简单的HTML文件,并在<script></script>标签中添加了这个片段(javascript方式),它工作得很好。

这是代码(像冠军一样工作)

<script>
  const nav = document.querySelector('#main');
  const topOfNav = nav.offsetTop;
  function fixNav() {
     console.log(topOfNav, window.scrollY);
 }

 window.addEventListener('scroll', fixNav);
 </script>

附加信息:

  • AngularJS版本:1.6.2
  • 浏览器类型:chrome
  • 浏览器版本:版本55.0.2883.87(64位)
  • 操作系统:Ubuntu 14.04 LTS

谢谢。

编辑:

角度材料版本:1.x.x

在挖掘太多(更新包,卸载和重新安装包)之后,我发现一件事是Angular-Material是Blocker。我尝试了其他角度项目,我找到的唯一阻挡剂是Angular Material

javascript angularjs dom angular-material
1个回答
3
投票

删除样式高度的地方:100%来自body元素,上面的代码对我有用


0
投票

以下对我有用:

html, body { height: auto }

© www.soinside.com 2019 - 2024. All rights reserved.