简体   繁体   English

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

[英]$window.scrollY , window.scrollY and window.pageYOffset nothing is working in angularjs

I tried all the possibilities I know and which I found in Stackoverflow to get window.scrollY value it always gave me "0" even same with window.scrollX. 我尝试了所有已知的方法,并在Stackoverflow中找到了所有方法,以获取window.scrollY值,即使它与window.scrollX一样,也总是给我“ 0”。 Please, can somebody suggest me what I'm doing wrong? 拜托,有人可以建议我我在做什么错吗?

I tried $window.scrollY , $document[0].documentElement.scrollTop , $document[0].documentElement.scrollLeft , $window.pageYOffset , angular.element($window) nothing is working for me. 我尝试了$window.scrollY$document[0].documentElement.scrollTop$document[0].documentElement.scrollLeft$window.pageYOffsetangular.element($window)对我来说没有用。

This is my code snippet (angular way) 这是我的代码段 (成角度)

Here in below code 在下面的代码中

  1. topOfNav working great topOfNav效果很好
  2. fixNav is triggering on scroll event fixNav在滚动事件上触发
  3. eventListener is working great eventListener运作良好
  4. window.scrollY not working and I'm always getting zero. 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); }); 

To test I tried creating simple HTML file and added this snippet ( javascript way ) in <script></script> tag it's working great. 为了进行测试,我尝试创建简单的HTML文件,并在<script></script>标记中添加了此代码段( javascript方式 ),效果很好。

here is the code (works like a champ) 是代码(像冠军一样工作)

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

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

Additional Information: 附加信息:

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

Thank you. 谢谢。

EDIT: 编辑:

Angular Material Version: 1.xx 角材料版本:1.xx

After digging too much (Updating Packages, uninstalling and re-installing packages) one thing I found is Angular-Material is the Blocker . 在挖了太多东西(更新软件包,卸载并重新安装软件包)之后,我发现一件事是Angular-Material是Blocker I tried with other projects of angular too, the only blocker I found was Angular Material 我也尝试了其他有关angular的项目,我发现的唯一障碍是Angular Material

某处从body元素移除了style height:100% ,上面的代码对我有用

以下为我工作:

html, body { height: auto }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM