javascript - 来自 Controller 的 Angular 动画

标签 javascript html css angularjs

您好,我正在尝试通过我的 Controller 为我的对象设置动画。基本上,html 包含一个图像,当我从 Controller 更改它时,我希望能够将它从屏幕上移到左侧或右侧。我有一些基本的东西,但它们似乎不起作用。

CSS

.img-slide {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 350px;
}
.img-slide.ng-enter,
.img-slide.ng-leave {
    -webkit-transition: all 1s ease;
    transition: all 1s ease;
}
.img-slide.ng-enter {
    left: 100%;
}
.img-slide.ng-enter-active {
    left: 0;
}
.img-slide.ng-leave {
    left: 0;
}
.img-slide.ng-leave-active {
    left: -100%;
}

HTML

<div class='row images'>
     <div class='col img-slide'>
         <img src="{{imgSlide}}"/>
     </div>
</div>

JS

$scope.changeImg = function () {
    //This is where the scope var is update
    $scope.imgSlide = newImgSlide;

    //Code to add my animation here
};

最佳答案

恶魔蠕虫, 我对你的代码做了一些调整。有几个问题(一个是找不到您的第二个图像路径。)

首先,我添加了一个新的范围变量 currentImage。然后,我将图像放在一个数组中。接下来,我将您的 imgSlide 变量更新为一个对象,如下所示:

$scope.imgSlide = {
    image: $scope.imagesArray[$scope.currentImage].img
}

然后,我编辑了您的 HTML 以使用 ng-model,如下所示:

<div class='col img-slide' ng-model="imgSlide" >
    <img ng-src="{{imgSlide.image}}"/>
</div>

最后,我编辑了您的 changeImg 函数,使其更新 $scope.currentImage 的值,并将 imgSlide 对象的 img 属性替换为数组中位于 $scope.currentImage 索引处的元素。

希望这对您有所帮助。

这是一个 fiddle :http://jsfiddle.net/bjDesign/ntdt8jsa/11/

关于javascript - 来自 Controller 的 Angular 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29565815/

相关文章:

javascript - setInterval 和事件循环

javascript - 仅在系列内堆叠 Highcharts 列

javascript - 升级到 jQuery 1.7 并更改事件对象

javascript - 在 html 页面中使用 Javascript 检测所有图像

jquery - 当 jquery Accordion 处于事件/打开状态时替换内容/图标

javascript - 如何检查值是否未定义以便不将其添加为对象字段?

css - CSS 页眉周围的空格

html - 如何在不更改html代码的情况下更改元素的顺序?

html - Chrome 在每个循环中重新加载视频

html - 在 SASS 中,我想更改每一偶数行元素的背景颜色