gpt4 book ai didi

javascript - 滚动指令在 Angular JS 中不起作用

转载 作者:行者123 更新时间:2023-11-28 05:57:47 24 4
gpt4 key购买 nike

抱歉这个愚蠢的问题。我是 Angular JS 的新手。我从 http://jsfiddle.net/88TzF/622/ 找到了一个不错的小滚动指令但是当我创建下面的 HTML 时它不起作用 下拉示例

      <ul class="dropdown-menu Container" scroll>
<div >
<li ng-repeat="i in items"><a href="#">{{i.value}}</a></li>
</div>
</ul>


</div>

但是如果我在触发时执行 jQuery Way 滚动事件。你能告诉我出了什么问题吗?

Items 数组有 700 多个对象。所以它溢出了。

    .Container
{
height: 300px;
overflow: scroll;
}

提前致谢。

最佳答案

您正在将滚动事件绑定(bind)到窗口,但我假设您正在滚动下拉容器?

如果是这种情况,那么您必须将滚动事件绑定(bind)到下拉容器,并在您的 if 语句中检查 this.scrollTop

但是,不要忘记取消绑定(bind)滚动事件,因为 Angular 无法自行处理。

app = angular.module('myApp', []);
app.directive("scroll", function ($window) {
return function(scope, element, attrs) {
element.on("scroll", function() {
if (this.scrollTop >= 100) {
scope.boolChangeClass = true;
console.log('Scrolled below header.');
} else {
scope.boolChangeClass = false;
console.log('Header is in view.');
}
scope.$apply(); // Prefer scope.$digest()!
});

scope.$on('$destroy', function () {
element.off('scroll');
});
};
});
.dropdown-container {
height: 300px;
border: 1px solid black;
overflow: auto;
}

ul {
padding: 0;
margin: 0;
}

li {
list-style-type: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div ng-app="myApp" class="test">
<div class="dropdown-container" scroll>
<ul class="dropdown-menu">
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
<li><a href="#">test</a></li>
</ul>
</div>
</div>

关于javascript - 滚动指令在 Angular JS 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36970201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com