2016-03-26 9 views
0

現在、角度のある材質の角型アプリケーションを作成しています。私はスクロールイベントに問題があります。角度材料がスクロールイベントを発生しない

私のアプリが固定されており、左sidenav、右側のコンテンツで構成されています。私は右のコンテンツをスクロールしようとしますが、成功することはありません。私はレイアウト指示がこのバグを引き起こすと思います。

これは私の問題のHTMLの例です:

<body ng-app="MyApp" layout="row" ng-cloak> 

<md-sidenav layout="column" md-is-locked-open='true'> 
    SideNav 
    </md-sidenav> 

    <md-content flex layout="column" scroll> 
    <ng-view> 
     <div class="test">Content</div> 
    </ng-view> 
    </md-content> 
</body> 

のjavascript:

var app = angular.module('MyApp', ['ngMaterial']); 

app.directive("scroll", function ($window) { 
    return function(scope, element, attrs) { 

     angular.element($window).on("scroll", function() { 
      if (this.pageYOffset >= 100) { 
       console.log('Scrolled below 100px'); 
      } else { 
       console.log('Scrolled above 100px'); 
      } 
     }); 
    }; 
}); 

<div class="test"></div>は巨大な高さを持っている場合は、<md-content></md-content>はスクロール可能になり、私は通常、火災のスクロールイベントでし私の指示はscrollです。

だから私は1500pxに<div class="test"></div>の高さを置く:

md-sidenav { 
    width: 110px;height:100%; 
    padding:20px; 
    background-color: #6bc7cc; 
} 

md-content { 
    background-color : tan; 
    height:100%; 
    padding:20px; 
} 

.test { 
    height: 1500px; 
} 

残念ながら、それは働いていないと私は、スクロールイベントを発生することはできません。私は間違って何をしていますか?それをどのように修正できますか?

PS:ここに私の問題のバイオリンです:https://jsfiddle.net/wahddee2/4/

答えて

2

それはあなたにイベントリスナーを添付しなければならないものですので、それは、$window、ないスクロールしていること、あなたのelementです。

element.on("scroll", function() { 
    console.log(element[0].scrollTop); 
}); 
+0

そうそう、ありがとう!私はそんなに馬鹿だ – pchmn

関連する問題