Przekształcam wtyczkę jQuery w dyrektywę kątową, ale nadal nie działa poprawnie lub: nie działa wcale.Przekształcanie jQuery w kątowy, stały pasek boczny nie działa (?)
This is the behavior I want to achieve
Pamiętaj, że wszystko, co chcę osiągnąć z tym, jest zachowanie na lewym pasku bocznym, gdzie mówi się „lepkie” wszędzie.
Zrobiłem to z jQuery (jestem nowy w Angular) i potrzebuję go do pracy z Angular. Proszę iść i zobaczyć Plunkr Example, to zachowanie, którego chcę. Z góry dziękuję, jeśli niektórzy z was poświęcą mi czas, aby mi pomóc.
spojrzeć na kod jQuery:
$(function() {
var offset = $("#sidebar").offset();
var topPadding = 85;
$(window).scroll(function() {
if ($(window).scrollTop() > offset.top) {
$("#sidebar").stop().animate({
marginTop: $(window).scrollTop() - offset.top + topPadding
});
} else {
$("#sidebar").stop().animate({
marginTop: 50
});
};
});
});
i tu jest moje kątowa dyrektywa:
angular.module('capilleira.clickAndGambleWebApp.directives', [])
.directive('sticky', function ($window) {
return {
restrict: 'A',
controller: ($scope)
link: function (scope, element, attrs) {
var raw = element[0],
offset = element.offset(),
topPadding = 85;
angular.element($window).bind('scroll', function() {
console.log('SCROOOOOOOOOOOOOLLLL');
if ($window.scrollTop > offset.top) {
raw.stop().animate({
marginTop: $window.scrollTop() - offset.top + topPadding
});
}
});
}
}
});
moja dyrektywa jest dobry w momencie, gdy nie przewijania the console.log
zjawia.
Moje oczekiwanie było jednym z tych linków, które miały być działającą wersją jQuery, a jednym z nich był twój próbowany (ale nie działający) kod kątowy. Wygląda na to, że oba są tym samym łączem z kodami kątowymi i nie jest całkiem jasne, co ma robić. Prawdopodobnie uzyskasz lepszą/więcej pomoc, jeśli jest jasne, czego potrzebujesz (a jsfiddle/plunkr z działającego kodu jQuery prawdopodobnie będzie z tym dużo trudniejszy). – Jack
@Jack Robiłem to w ten sposób, ale mówisz, ale nie wiem, dlaczego ostatnia zmiana, którą zrobiłem, nigdy nie została zapisana. [spójrz na to, zrobiłem to jeszcze raz] (http://plnkr.co/edit/xRXOqzaXxg6hVXDhOfV2?p=preview) tam jest funkcja jQuery, a poniżej na notatki w tym samym pliku script.js zobaczysz kod dla Angular Dyrektywa. proszę zauważyć, że zachowanie, które chcę osiągnąć, to zachowanie na lewym pasku bocznym, gdzie mówi się "STICKY" wszędzie. – TheUnnamed
@MarkRenton Kiedy mówisz: "potrzebujesz mieć to działa z Angular" masz na myśli to, że potrzebujesz go działającego bez jQuery? Jeśli nadal ładuje się jQuery, możesz użyć go równolegle. Więc po prostu wstaw ten sam kod pomiędzy instrukcją ready jQuery w twoim http://jsbin.com/puhapasaka/3/edit?js – hitautodestruct