使用angularJS javascript动态背景图片

时间:2016-08-03 13:57:07

标签: javascript jquery html css angularjs

我正在将一些图像加载到DOM中并且使用数组来保存这些图像。我想动态地改变一个叫做包装器的div的背景图像,从数组中收集图像。 怎么做?

现在我有了这个

$scope.$on('$viewContentLoaded', function() {
    $rootScope.backgroundImg="url('http://abounde.com/uploads/images/office.jpg')";   
    $rootScope.loading = false;
    console.log("about page loaded");
});

我想要这样的东西

var images =[imageObject1, imageObject2, imageObject3];  
//imageObject are already loaded and when i 
//call them inside a html div using .html(), 
//they show as <img src="source of the image"/>

$scope.$on('$viewContentLoaded', function() {
    $rootScope.backgroundImg="url('images[0]')";   
    $rootScope.loading = false;
    console.log("about page loaded");
});

我可以创建对象并将它们存储在数组中。我只需要一种方法在backgroundImg变量中使用thsee图像来设置div的背景样式

2 个答案:

答案 0 :(得分:1)

您可以使用ngStyle

<html ng-app  ng-style="htmlStyle">
    <!-- Html here -->
</html>

然后:

var images =[imageObject1, imageObject2, imageObject3];
var currenBackground = 0;
$scope.$on('$viewContentLoaded', function() {
    var current = currenBackground++ % images.length;
    $rootScope.htmlStyle = {
       backgroundImage: "url("+ images[current].src +")"
    };   
    $rootScope.loading = false;
    console.log("about page loaded");
});

答案 1 :(得分:0)

首先,您需要将您的图像数组url放在范围内:

$scope.$root.images = ['imageurl', 'imageurl1', 'imageurl2']; 

在HTML中你需要输入

ng-style="{'background-image': 'url({{ $root.images[0] }})'}

这会有效!