Javascript 如何处理jQuery(窗口)。在jQuery中高效地滚动函数?

Javascript 如何处理jQuery(窗口)。在jQuery中高效地滚动函数?,javascript,jquery,angularjs,angularjs-directive,Javascript,Jquery,Angularjs,Angularjs Directive,这是我当前的代码,感觉不是很有效,如果使用定时器/超时,可能会更好。然而,我不知道该怎么做 有人能帮忙吗?使用javascript效率不高。我的JS在休假 app.directive('ScrollBar', function () { return { restrict: 'A', scope: {}, link: function postLink(scope, elem, attrs) { jQuery(win

这是我当前的代码,感觉不是很有效,如果使用定时器/超时,可能会更好。然而,我不知道该怎么做

有人能帮忙吗?使用javascript效率不高。我的JS在休假

app.directive('ScrollBar', function () {
    return {
        restrict: 'A',
        scope: {},
        link: function postLink(scope, elem, attrs) {
            jQuery(window).scroll(function(){
                var SBar = jQuery("#ScrollStop").offset();
                var screenPosition = jQuery(document).scrollTop() + window.innerHeight;
                if (screenPosition < SBar.top) {
                    jQuery(".ScrollClass").fadeIn();
                }
                if (screenPosition >= SBar.top) {
                    jQuery( ".ScrollClass" ).fadeOut();
                }
            });
        }
    };
})

如果你能通过绑定滚动功能来区分滚动方向就好了,我有一把小提琴,希望对你有所帮助


就效率而言,看起来不错,但你可能想消除这些条件的影响,这样它就不会在每次滚动运动中消失。我该怎么做?
myApp.directive('scrolly', function () {
    return {
        restrict: 'A',
        link: function (scope, element, attrs) {
        var lastScrollTop = 0;
            var raw = element[0];
            console.log('loading directive');

            element.bind('scroll', function () {
                console.log('in scroll');
                if(raw.scrollTop < lastScrollTop)
              {
              alert("scroll up");
              lastScrollTop = raw.scrollTop;
              }
              else{
              lastScrollTop = raw.scrollTop;
              }

                if (raw.scrollTop + raw.offsetHeight > raw.scrollHeight) {
                    scope.$apply(attrs.scrolly);
                }
            });
        }
    };
});