这是我的代码而且不起作用。怎么了?
HTML
<i ng-show="whenIconsIntoView()" class="fa fa-mail"></i>
JS
app.controller('AboutCtrl', ['$scope', '$window', function($scope, $window){
// some function to detect is scroll into user's view
isScrolledIntoView = function(elem) {...}
$window.onscroll = function() {
$scope.whenIconsIntoView = function(){
$scope.$apply(function() {
return isScrolledIntoView('.icons');
});
};
};
}]);
答案 0 :(得分:0)
尝试更多角度方式代码
app.controller('AboutCtrl', ['$scope', function($scope, $window) {
// some function to detect is scroll into user's view
isScrolledIntoView = function(elem) {...
}
$window[0].on('scroll', function() {
$scope.whenIconsIntoView = function() {
$scope.$apply(function() { //need to run digest cycle from events
return (isScrolledIntoView('.icons')) ? true : false;
});
};
});
}]);
我想建议您不要使用角度控制器中的DOM,我认为该指令是isScrolledIntoView = function(elem) {...}
函数正在执行的最佳方法。
答案 1 :(得分:-1)
您可以在JS文件中添加事件侦听器以侦听该ID的位置。换句话说,您可能需要制作一个附加到您想要显示的事物的指令,并且在该指令中您希望始终发送该位置。因此,在新指令中使用jquery,并让它ping它的位置,然后如果它的位置是监视器宾果游戏上的y值。
换句话说,如果您的显示器高1000px,并且您的元素低于1400px,则向下滚动400px,jquery将识别您的窗口滚动高度已更改,然后您可以关闭一个函数。
不想给你代码,而是高层次的理解。这有帮助吗?
$("#scrollid").scroll(function(){
// get current window height
//then get id position on page
// if window scroll overlaps with id position, set display:bock or whatever
})