| 

.NET C# Java Javascript Exception

3
Hallo,

ich hab eine Direktive die in den verschiedensten Containern eingesetzt werden soll. Diese soll darauf reagieren, wenn sie in irgendeiner Art und Weiße gescrollt wird, also z.B. wenn das Browserfenster gescrollt wird, oder aber ein beliebig tief verschachtelter Div-Container mit overflow:scroll oder auto.
Daher funktioniert dieser Ansatz leider nicht immer:

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


Gibt es eine Möglichkeit beliebige Scroll-Events abzufangen, ohne dass ich mich auf ein spezielles Element festlegen muss? Oder kann ich sonst irgendwie feststellen, dass sich die Position meiner Direktive zum Fenster irgendwie geändert hat?
21.08.2014
Smartin 35 5
2 Antworten
1
Mit "normalen" jQuery würde folgendes funktionieren:

<script type="text/javascript">
$(document).ready(function() {
// behandlet das scroll event
var handleScroll = function(evt) {
// Scroll event behandeln
console.debug("Scroll");
console.debug(evt.currentTarget);
};

// Scrollen eines containers
$('*').on('scroll', handleScroll);
// Scrollen der ganzen Seite
$(document).on('scroll', handleScroll);
});
</script>


Angularjs bringt eine abgespeckte Version von jQuery mit, ob die on-Methode in diesem Fall wie gewünscht funktioniert weiß ich nicht. Falls nicht müsste halt das vollständige jQuery verwendet werden, was sich mit anuglarjs gut vertragen soll (habe ich nie getestet).
24.08.2014
phg 1,6k 4
Danke für deine Hilfe. In dem abgespeckten jQuery von AngularJS funktionieren leider keine Selektoren, deswegen hab ich den querySelectorAll von JavaScript genutzt. Siehe meine Antwort
Smartin 27.08.2014
1
Mit AngularJS hat nun folgendes funktioniert:

angular.element(document.querySelectorAll('*')).bind("scroll", $scope.myFunction);
27.08.2014
Smartin 35 5

Stelle deine Javascript-Frage jetzt!