Sto convertendo un plug-in jQuery in una direttiva angolare, ma ancora non funziona correttamente o: non funziona affatto.Girare jQuery in Angular, barra laterale fissa non funziona (?)
This is the behavior I want to achieve
Ricordate che tutto quello che voglio ottenere con questo, è il comportamento nella barra laterale sinistra dove dice 'appiccicoso' ovunque.
L'ho fatto con jQuery (sono nuovo di Angular) e ho bisogno di farlo funzionare con Angular. Per favore, vai a vedere lo Plunkr Example, quel comportamento è quello che voglio. Grazie in anticipo se qualcuno di voi si prende il tempo per aiutarmi.
un'occhiata al codice 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
});
};
});
});
ed ecco la mia direttiva angolare:
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
});
}
});
}
}
});
mia direttiva è bravo a tal punto che una volta che si fa scorrere, the console.log
presenta.
La mia aspettativa era che uno di quei collegamenti sarebbe stata la versione funzionante di jQuery e uno sarebbe stato il vostro (ma non funzionante) codice angolare tentato. Sembrano entrambi lo stesso collegamento con il codice angolare e non è del tutto chiaro cosa si suppone stia facendo. Probabilmente otterrai un aiuto migliore/più se è chiaro di cosa hai bisogno (e un jsfiddle/plunkr del codice jQuery funzionante probabilmente andrà molto lontano). – Jack
@Jack L'ho fatto in questo modo, ma non so perché l'ultimo cambiamento che ho fatto non è mai stato salvato. [guarda questo, l'ho fatto di nuovo] (http://plnkr.co/edit/xRXOqzaXxg6hVXDhOfV2?p=preview) c'è la funzione jQuery e in basso nelle note nello stesso file script.js vedrai il codice per Angular Direttiva. per favore nota che il comportamento che voglio raggiungere è quello nella barra laterale di sinistra dove dice 'STICKY'everywhere. – TheUnnamed
@MarkRenton Quando dici: "è necessario che funzioni con Angular", vuoi dire che devi averlo a funzionare senza jQuery? Se jQuery è ancora in fase di caricamento, puoi utilizzarlo insieme a quello angolare. Quindi metti lo stesso codice che hai tra l'istruzione jQuery ready nella tua direttiva http://jsbin.com/puhapasaka/3/edit?js – hitautodestruct