angular随机css旋转总是移动
angular random css rotation always moving
我想要一个随机 css 旋转的 img。我设法实现了这一点,但是当您将鼠标移到传单地图上时,img 总是在旋转:
http://jsfiddle.net/J03rgPf/mzwwfav4/3/
如何只设置一次随机css,这样getRandRot函数就不会被反复调用?
<body ng-controller="DemoController">
<leaflet center="center"></leaflet>
<div class="{{getRandRot()}}">
<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/Surfers_at_Mavericks.jpg/320px-Surfers_at_Mavericks.jpg" />
</div>
</body>
角度 JS 代码:
var app = angular.module('demoapp',['leaflet-directive']);
app.controller('DemoController', [ '$scope', 'leafletData', function($scope, leafletData) {
angular.extend($scope, {
center: {
lat: 51.505,
lng: -0.09,
zoom: 5
}
})
$scope.getRandRot = function(){
var rotations = [ "rotate-10", "rotate-5", "rotate5", "rotate10" ];
var rand = Math.floor(Math.random() * rotations.length);
return rotations[rand];
}
}]);
CSS
.angular-leaflet-map {
width: 100%;
height: 280px;
}
.rotate-10{
-moz-transform: rotate(-10deg);
-ms-transform: rotate(-10deg);
-o-transform: rotate(-10deg);
-webkit-transform: rotate(-10deg);
}
.rotate-5{
-moz-transform: rotate(5deg);
-ms-transform: rotate(5deg);
-o-transform: rotate(5deg);
-webkit-transform: rotate(5deg);
}
.rotate5{
-moz-transform: rotate(5deg);
-ms-transform: rotate(5deg);
-o-transform: rotate(5deg);
-webkit-transform: rotate(5deg);
}
.rotate10{
-moz-transform: rotate(10deg);
-ms-transform: rotate(10deg);
-o-transform: rotate(10deg);
-webkit-transform: rotate(10deg);
}
也许可以将调用 getRandRot 的响应分配给控制器中的一个值?
通过使用 class={{ getRandRot() }}
,您将在 getRandRot
上创建一个绑定,它将在每个摘要阶段被调用
这样就可以了:
HTML
<body ng-controller="DemoController">
<leaflet center="center"></leaflet>
<div ng-class="randRot">
<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/Surfers_at_Mavericks.jpg/320px-Surfers_at_Mavericks.jpg" />
</div>
</body>
JS
var app = angular.module('demoapp',['leaflet-directive']);
app.controller('DemoController', [ '$scope', 'leafletData', function($scope, leafletData) {
angular.extend($scope, {
center: {
lat: 51.505,
lng: -0.09,
zoom: 5
}
})
getRandRot = function(){
var rotations = [ "rotate-10", "rotate-5", "rotate5", "rotate10" ];
var rand = Math.floor(Math.random() * rotations.length);
return rotations[rand];
}
$scope.randRot = getRandRot();
}]);
顺便说一下,ng-class 是在 angular.
元素上动态设置 class 的首选方法
希望对您有所帮助。
我想要一个随机 css 旋转的 img。我设法实现了这一点,但是当您将鼠标移到传单地图上时,img 总是在旋转:
http://jsfiddle.net/J03rgPf/mzwwfav4/3/
如何只设置一次随机css,这样getRandRot函数就不会被反复调用?
<body ng-controller="DemoController">
<leaflet center="center"></leaflet>
<div class="{{getRandRot()}}">
<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/Surfers_at_Mavericks.jpg/320px-Surfers_at_Mavericks.jpg" />
</div>
</body>
角度 JS 代码:
var app = angular.module('demoapp',['leaflet-directive']);
app.controller('DemoController', [ '$scope', 'leafletData', function($scope, leafletData) {
angular.extend($scope, {
center: {
lat: 51.505,
lng: -0.09,
zoom: 5
}
})
$scope.getRandRot = function(){
var rotations = [ "rotate-10", "rotate-5", "rotate5", "rotate10" ];
var rand = Math.floor(Math.random() * rotations.length);
return rotations[rand];
}
}]);
CSS
.angular-leaflet-map {
width: 100%;
height: 280px;
}
.rotate-10{
-moz-transform: rotate(-10deg);
-ms-transform: rotate(-10deg);
-o-transform: rotate(-10deg);
-webkit-transform: rotate(-10deg);
}
.rotate-5{
-moz-transform: rotate(5deg);
-ms-transform: rotate(5deg);
-o-transform: rotate(5deg);
-webkit-transform: rotate(5deg);
}
.rotate5{
-moz-transform: rotate(5deg);
-ms-transform: rotate(5deg);
-o-transform: rotate(5deg);
-webkit-transform: rotate(5deg);
}
.rotate10{
-moz-transform: rotate(10deg);
-ms-transform: rotate(10deg);
-o-transform: rotate(10deg);
-webkit-transform: rotate(10deg);
}
也许可以将调用 getRandRot 的响应分配给控制器中的一个值?
通过使用 class={{ getRandRot() }}
,您将在 getRandRot
上创建一个绑定,它将在每个摘要阶段被调用
这样就可以了:
HTML
<body ng-controller="DemoController">
<leaflet center="center"></leaflet>
<div ng-class="randRot">
<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/Surfers_at_Mavericks.jpg/320px-Surfers_at_Mavericks.jpg" />
</div>
</body>
JS
var app = angular.module('demoapp',['leaflet-directive']);
app.controller('DemoController', [ '$scope', 'leafletData', function($scope, leafletData) {
angular.extend($scope, {
center: {
lat: 51.505,
lng: -0.09,
zoom: 5
}
})
getRandRot = function(){
var rotations = [ "rotate-10", "rotate-5", "rotate5", "rotate10" ];
var rand = Math.floor(Math.random() * rotations.length);
return rotations[rand];
}
$scope.randRot = getRandRot();
}]);
顺便说一下,ng-class 是在 angular.
元素上动态设置 class 的首选方法希望对您有所帮助。