/ /角度スクロールバーの割合-jquery、angularjs、スクロール、スクロールバー、割合

角度スクロールバーのパーセンテージ - jquery、angularjs、スクロール、スクロールバー、パーセンテージ

スクロールバーの傾きを見つける必要がありますangular.jsで。次に、関数を呼び出すために約60%に達すると。現在、ディレクティブから呼び出されるスコープ関数を使用していますが、唯一の問題は、スクロールバーが下にスクロールされている割合を見つけることができないことです。これは私が今まで持っているもので、あまり良く見えません...

app.directive("whenScrolled", function($window) {

return function(scope, element, attr) {
var scrolledEl = angular.element($window);

angular.element($window).bind("scroll", function() {

var offSet = scrolledEl.offset(),
height = scrolledEl.height(),
scrolledPercentage = (offSet / height)*11;

if (scrolledPercentage >= 60) {
scope.$apply(attr.whenScrolled);
}
});
};

});

あなたが見ることができるように私は実験的に私が見つけたときこれに11を掛けるとパーセンテージが得られますが、いくつかの画面の高さでしか機能しません。一般的な解決策が必要です。後で、DOMにさらに要素を追加すると、体が伸びて正しい%が得られます。何か案は?

回答:

回答№1は0

あなたは使用している必要があります $window.pageYOffset そして $window.innerHeight 除算により0から1の値が得られるため、パーセンテージの種類の数値と比較したい場合は、100を掛けます。

これは多かれ少なかれあなたが望むように動作するはずです(割合が60を超える場合、console.logをあなたが取る必要のあるアクションで置き換えてください):

  angular.element($window).bind("scroll", function() {

var offSet = $window.pageYOffset,
height = $window.innerHeight,
scrolledPercentage = (offSet / height * 100);
//console.log(scrolledPercentage);
if (scrolledPercentage >= 60) {
console.log(scrolledPercentage + " over 60");
}
});