【发布时间】:2014-09-18 11:32:09
【问题描述】:
我在玩粘性导航。问题是fixed/static 类对的评估/应用需要太长时间。
标记看起来像这样:
<div id="header" ng-controller="navController">
<div id="logo">
<a href="#"><img src="@Url.Content(@"~/assets/img/logotype.png")" alt="logo" /></a>
</div>
<ul ng-class="{fixed: useFixedPosition, static: !useFixedPosition}">
<li><a href="#" class="home">Services</a></li>
<li><a href="#">Equipment</a></li>
<li><a href="#">Prices</a></li>
<li><a href="#">Contacts</a></li>
</ul>
</div>
#header ul.fixed { position: fixed; top: 0; width: 100%; }
#header ul.static { position: static; }
控制器代码如下所示:
app.controller('navController', ['$scope', '$document', function($scope, $document) {
$scope.useFixedPosition = false;
$document.on('scroll', function() {
$scope.useFixedPosition = $document.scrollTop() > 385;
});
}]);
我正在使用angular-scroll 插件 (https://github.com/durated/angular-scroll)
我做错了什么?
编辑
感谢@Plantface,有一个小提琴:http://jsfiddle.net/ud7k2po1/11。
【问题讨论】:
-
你能在 jsFiddle 中重现吗?
-
我很想,但我不知道如何引用 jsfiddle 中的插件。我没有在 jsdelivr 找到它?有什么想法吗?
-
“慢”到底是什么意思?您遇到的实际症状是什么?是类本身应用慢,还是触发的效果慢?它们是两种不同的东西。
-
条件 (
$scope.useFixedPosition = $document.scrollTop() > 385;) 的评估速度相当快。但是将固定位置应用于给定的 ul 大约需要 4-5 秒。应用(确切)类需要很长时间。 -
@lexeme 您可以从 github 获取分发文件并使用 GitRaw 找到在 jsFiddle 中有效的 URL。你可以 fork 这个example 我为你做的,并尝试让它与你的代码一起工作。
标签: javascript angularjs scroll navigation