私は$scope
にvarを持っています。スクロールアップしてスクロールダウンするときに、それを減らす必要があります。どうやってやるの? jsのスクロールを使うべきですか?スクロールの角度変化var
0
A
答えて
0
あなたの質問は明らかではないが、私はそれを正しく理解すれば、あなたはスクロール方向に基づいてカウンターを増加/減少します。
それにすることができます方法は次のように「スクロール」(jQueryの)イベントにタップすることである:
angular.element($window).on('scroll', function(event) {
// Do something here.
});
より良いあなたが希望これにカスタムディレクティブを書いて、カスタムイベントを放出して、あなたのことができますあなたのコントローラーでこのイベントを聞き、それに基づいて行動することができます。
注:スクロールイベントをデバウンスすることもできます。
P.S.他人があなたの質問をよりよく理解できるように、コードスニペットまたはjsfiddle/codepenを必ず提供してください。
angular.module('app', [])
.controller('MainController', function($rootScope, $scope) {
var changeBy = 5;
$scope.scrollCounter = 0;
// Tap into custom 'scrollHappened' event.
$rootScope.$on('scrollHappened', function(event, scrollUpHappened) {
// If the scroll direction is 'down'.
if (scrollUpHappened) {
$scope.scrollCounter += changeBy;
} else { // Scroll direction is 'up'.
$scope.scrollCounter -= changeBy;
}
});
})
.directive('scrollCounter', function($rootScope, $window) {
return {
restrict: 'A',
link: function() {
var lastScrollPos = 0;
// Add a scroll event on $window object.
angular.element($window).on('scroll', function(event) {
console.log(angular.element(event.target))
var scrollPos = angular.element(event.target).scrollTop();
// Emit custom 'scrollHappened' event.
$rootScope.$emit('scrollHappened', (scrollPos > lastScrollPos));
// As all this is happening outside of the angular world
// wrap the update logic inside $apply, so that update will
// be visible to the angular.
$rootScope.$apply(function() {
lastScrollPos = scrollPos;
});
});
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.min.js"></script>
<div data-ng-app="app" data-ng-controller="MainController">
<div scroll-counter="" style="height: 400px">
<span>Current scroll counter = {{ scrollCounter }}</span>
<br/><br/>
<span>Current scroll counter = {{ scrollCounter }}</span>
<br/><br/>
<span>Current scroll counter = {{ scrollCounter }}</span>
<br/><br/>
<span>Current scroll counter = {{ scrollCounter }}</span>
<br/><br/>
<span>Current scroll counter = {{ scrollCounter }}</span>
<br/><br/>
<span>Current scroll counter = {{ scrollCounter }}</span>
<br/><br/>
</div>
</div>
0
javacript window.scrollTo
の機能を使用してください。
<!DOCTYPE html>
<html>
<head>
<style>
body {
width: 5000px;
height: 5000px;
}
</style>
</head>
<body>
<p>Click the button to scroll</p>
<button onclick="scrollWin()">Click me to scroll</button><br><br>
<script>
function scrollWin() {
window.scrollTo(0, 1000);
}
</script>
</body>
</html>
関連する問題
- 1. 角度変化の色
- 2. 角度変化のルートが、
- 3. 角度2未定義VAR
- 4. Nativescript角度TabViewスクロール
- 5. 角度無限スクロール
- 6. ブートストラップドロップダウンと角度ルーティングのスクロール
- 7. 角度NG-オプションの変化の範囲
- 8. @Inputオブジェクトの角度変化検出
- 9. 変化検出の角度2 + GridStackエラー?
- 10. 変化検出角度2モデルのプロパティ
- 11. 角度2の変化検知機構
- 12. 角度2の変化検出
- 13. 角度、Javascript検証skip var from返信
- 14. 角度2 NG2-チャートドーナツ変化セグメントカラー
- 15. 角度カスタムディレクティブ変化属性値
- 16. 角度変化検出とリスト参照
- 17. スクロール後のヘッダーの修正角度4
- 18. 角度インスタンス化クラスエラー
- 19. イオンのスクロールの角の変化するスタイル
- 20. 角度のカプセル化のparam
- 21. ルート変更時の角度変化の検出
- 22. 角度2キャンバスピクセル化のdrawImage
- 23. 視覚化角度のセット
- 24. 角度5ロールベースのルートアクティブ化
- 25. 角度の符号化データ
- 26. 角度2スクロールで固定位置に変更
- 27. スクロール位置に基づく角度変更ID
- 28. 角度uiツアー - スクロールしない
- 29. 無限スクロール距離 - 角度2
- 30. 角度CLI;フォーカスも入力にスクロール
jsfiddle/plunkerまたは少なくともコードスニペットを提供します。 –