【发布时间】:2015-07-31 08:19:11
【问题描述】:
所以... 我正在处理一个水平菜单,其中包含溢出窗口 x 轴的元素。 导航菜单中的项目是通过 Angular 控制器使用箭头键完成的。
我正在尝试找出一种方法来为 CSS 过渡设置动画,这将使整个菜单根据导航向左/向右移动,以便活动项始终可见。 这应该在不滚动的情况下完成,因为窗口设置为溢出:隐藏。
我的第一直觉是使用 jquery .animate(),但这对我在角度控制器/指令中不起作用。
菜单的 HTML:
<section id="catContainer" cat-navigation ng-class="{'disabled': activeLevelIndex > 1}">
<div ng-repeat="category in categories" ng-class="{'active': $index == activeCatIndex }" class="category selectable">
<img class="catImg" ng-src="{{category.image}}" />
<h2>{{category.name}}</h2>
</div>
</section>
这是我按下右/左按钮时触发的代码:
var current = $("#catContainer .category.active");
var left = current.position().left;
var right = left + current.width();
var shift;
if (right > $(window).width)
shift = -(1.2 * current.width()) + $("#catContainer").css("left-margin");
else if (left < 0){
shift = (1.2 * current.width()) + $("#catContainer").css("left-margin");
}
$("#catContainer").animate({
"margin-left" : shift
}, 400, function() {
console.log("cat anim done.");
});
$("#catContainer").css("margin-left", shift);
目前,我记录了“猫动画完成”,但实际上什么也没发生。 任何有关如何使此动画工作的帮助将不胜感激。
【问题讨论】:
-
您是否将动画依赖 JS 文件添加到您的 Angular 应用程序中?除非您将 ngAnimate 模块作为依赖项包含在应用程序中,否则动画不可用。如果没有,您可以从此处获取并包含在您的应用程序中。链接:ajax.googleapis.com/ajax/libs/angularjs/1.4.0-rc.2/…
标签: jquery angularjs css animation