【问题标题】:$window.scrollY , window.scrollY and window.pageYOffset nothing is working in angularjs$window.scrollY , window.scrollY 和 window.pageYOffset 在 angularjs 中没有任何工作
【发布时间】:2017-06-15 07:25:43
【问题描述】:

我尝试了我知道的所有可能性,并且我在 Stackoverflow 中找到了这些可能性来获得 window.scrollY 值,它总是给我“0”,即使与 window.scrollX 相同。请,有人可以建议我做错了什么吗?

我试过$window.scrollY$document[0].documentElement.scrollTop$document[0].documentElement.scrollLeft$window.pageYOffsetangular.element($window) 没有任何效果。

这是我的代码 sn-p(角度方式)

在下面的代码中

  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> 标签中添加了这个 sn-p (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

谢谢。

编辑:

Angular 材质版本:1.x.x

在挖掘了太多(更新包、卸载和重新安装包)之后,我发现Angular-Material is the Blocker。 我也尝试过其他 Angular 项目,我发现的唯一障碍是 Angular Material

【问题讨论】:

    标签: javascript angularjs dom angular-material


    【解决方案1】:

    在某处删除样式 height:100% 从 body 元素中,上面的代码对我有用

    【讨论】:

      【解决方案2】:

      以下内容对我有用:

      html, body { height: auto }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-06
        • 1970-01-01
        • 2013-05-13
        • 2019-02-19
        • 2019-08-18
        • 2011-04-17
        • 1970-01-01
        • 2021-03-13
        相关资源
        最近更新 更多