Angularjs 将CSS Stick插件转换为Angular指令
我正在尝试使用这个带有角度指令的粘性CSS插件。我试着把这段代码包装成一个指令,但还没有成功 这是插件的代码笔,没有角度- 这就是我目前所拥有的 任何帮助或指导都将不胜感激Angularjs 将CSS Stick插件转换为Angular指令,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我正在尝试使用这个带有角度指令的粘性CSS插件。我试着把这段代码包装成一个指令,但还没有成功 这是插件的代码笔,没有角度- 这就是我目前所拥有的 任何帮助或指导都将不胜感激 app.directive('sticky', function() { return function stickyTitles(stickies) { this.load = function() { stickies.each(function(){ var
app.directive('sticky', function() {
return function stickyTitles(stickies) {
this.load = function() {
stickies.each(function(){
var thisSticky = jQuery(this).wrap('<div class="followWrap" />');
thisSticky.parent().height(thisSticky.outerHeight());
jQuery.data(thisSticky[0], 'pos', thisSticky.offset().top);
});
}
this.scroll = function() {
stickies.each(function(i){
var thisSticky = jQuery(this),
nextSticky = stickies.eq(i+1),
prevSticky = stickies.eq(i-1),
pos = jQuery.data(thisSticky[0], 'pos');
if (pos <= jQuery(window).scrollTop()) {
thisSticky.addClass("fixed");
if (nextSticky.length > 0 && thisSticky.offset().top >= jQuery.data(nextSticky[0], 'pos') - thisSticky.outerHeight()) {
thisSticky.addClass("absolute").css("top", jQuery.data(nextSticky[0], 'pos') - thisSticky.outerHeight());
}
} else {
thisSticky.removeClass("fixed");
if (prevSticky.length > 0 && jQuery(window).scrollTop() <= jQuery.data(thisSticky[0], 'pos') - prevSticky.outerHeight()) {
prevSticky.removeClass("absolute").removeAttr("style");
}
}
});
}
}
return function(){
var newStickies = new stickyTitles(jQuery(".followMeBar"));
newStickies.load();
jQuery(window).on("scroll", function() {
newStickies.scroll();
});
};
});
app.directive('sticky',function(){
返回函数stickyTitles(stickies){
this.load=函数(){
粘滞物。每个(函数(){
var thisticky=jQuery(this).wrap(“”);
thisticky.parent().height(thisticky.outerHeight());
jQuery.data(thisticky[0],'pos',thisticky.offset().top);
});
}
this.scroll=函数(){
粘滞物。每个(函数(i){
var thisticky=jQuery(this),
nextSticky=粘滞物等式(i+1),
prevSticky=粘滞物等式(i-1),
pos=jQuery.data(thisticky[0],'pos');
if(pos 0&&thisticky.offset().top>=jQuery.data(nextSticky[0],'pos')-thisticky.outerHeight()){
thisticky.addClass(“绝对”).css(“top”,jQuery.data(nextSticky[0],“pos”)-thisticky.outerHeight());
}
}否则{
thisticky.removeClass(“固定”);
如果(prevSticky.length>0&&jQuery(window).scrollTop()请尝试以下操作:
<sticky>
<div class="followMeBar">a</div>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<div class="followMeBar">b</div>
</sticky>
A.
B
指令:
app.directive('sticky', function() {
var stickyTitles = function (stickies) {
this.load = function() {
stickies.each(function() {
var thisSticky = jQuery(this).wrap('<div class="followWrap" />');
thisSticky.parent().height(thisSticky.outerHeight());
jQuery.data(thisSticky[0], 'pos', thisSticky.offset().top);
});
}
this.scroll = function() {
stickies.each(function(i) {
var thisSticky = jQuery(this),
nextSticky = stickies.eq(i + 1),
prevSticky = stickies.eq(i - 1),
pos = jQuery.data(thisSticky[0], 'pos');
if (pos <= jQuery(window).scrollTop()) {
thisSticky.addClass("fixed");
if (nextSticky.length > 0 && thisSticky.offset().top >= jQuery.data(nextSticky[0], 'pos') - thisSticky.outerHeight()) {
thisSticky.addClass("absolute").css("top", jQuery.data(nextSticky[0], 'pos') - thisSticky.outerHeight());
}
} else {
thisSticky.removeClass("fixed");
if (prevSticky.length > 0 && jQuery(window).scrollTop() <= jQuery.data(thisSticky[0], 'pos') - prevSticky.outerHeight()) {
prevSticky.removeClass("absolute").removeAttr("style");
}
}
});
}
}
return {
restrict: 'E',
link: function(scope, element, attrs) {
var newStickies = new stickyTitles($(element).find(".followMeBar"));
newStickies.load();
jQuery(window).on("scroll", function() {
newStickies.scroll();
});
}
};
app.directive('sticky',function(){
var stickyTitles=函数(粘滞){
this.load=函数(){
粘滞物。每个(函数(){
var thisticky=jQuery(this).wrap(“”);
thisticky.parent().height(thisticky.outerHeight());
jQuery.data(thisticky[0],'pos',thisticky.offset().top);
});
}
this.scroll=函数(){
胶粘物。每个(功能(i){
var thisticky=jQuery(this),
nextSticky=粘滞物等式(i+1),
prevSticky=粘滞物等式(i-1),
pos=jQuery.data(thisticky[0],'pos');
if(pos 0&&thisticky.offset().top>=jQuery.data(nextSticky[0],'pos')-thisticky.outerHeight()){
thisticky.addClass(“绝对”).css(“top”,jQuery.data(nextSticky[0],“pos”)-thisticky.outerHeight());
}
}否则{
thisticky.removeClass(“固定”);
如果(prevSticky.length>0&&jQuery(window).scrollTop(),如果可能的话,我正在尝试将其用于ng重复内容。任何帮助都将非常棒。我的新问题位于