繁体   English   中英

如何使用JavaScript旋转div?

[英]How to rotate a div using JavaScript?

我想在用户单击按钮时将此div旋转180度。

<div class="game-wrapper">
...
</div>

我在JavaScript中有这段代码。

$scope.rotate = function () {
    var x = document.getElementsByClassName("game-wrapper");
    x.style.transform = "rotate(180deg)";
}

我收到此错误:

TypeError:无法设置未定义的属性“ transform”

在Scope。$ scope.rotate(controllers.js:421)

我也在使用AngularJS。

常规DOM API的工作方式不同于jQuery API(设置值时隐式循环集合中的所有元素)。

您的HTML建议类中只有一个此元素。 因此,您可以使用x[0]获得第一个元素。

但是,对于一般建议,您需要遍历返回的集合并将其应用于每个单独的元素。

var x = document.getElementsByClassName("game-wrapper");
Array.protoype.forEach.call(x, function(y) {
   y.style.transform = "rotate(180deg)";
});

如果您的平台支持或正在将其转换为ES4,请使用Array.from()将您的集合转换为常规数组。

就像@alex说的那样。 但除此之外,请注意, element.style.transform不会在所有浏览器中都起作用,因为您需要为所支持的每个浏览器添加前缀:

element.style.webkitTransform = "";
element.style.MozTransform = "";
element.style.msTransform = "";
element.style.OTransform = "";
element.style.transform = "";

使用CSS时也是如此:

// loop from Alex' answer
Array.protoype.forEach.call(x, function(y) {
   y.classList.add('rotated');
});

CSS:

.rotated {
    -webkit-transform: rotate(180deg);
    -moz-transform: rotate(180deg);
    -ms-transform: rotate(180deg);
    -o-transform: rotate(180deg);
    transform: rotate(180deg);
}

嗨,请检查代码,

 <!DOCTYPE html>
<html ng-app="plunker">

  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <link rel="stylesheet" href="style.css" />
    <script data-require="angular.js@1.0.x" src="https://code.angularjs.org/1.0.8/angular.js" data-semver="1.0.8"></script>
    <script src="app.js"></script>
  </head>

  <body ng-controller="MainCtrl">
    <p>Hello {{name}}!</p>
    <div class="container-div {{rotateclass}}" ng-class="{{rotateclass}}">Hello</div>
    <button ng-click="handleAnchorClick()">Click me</button>

  </body>

</html>

和控制器

var app = angular.module('plunker', []);

app.controller('MainCtrl',function($ scope){$ scope.name ='World';

$scope.handleAnchorClick = function() {
   $scope.rotateclass = "roratediv"
};

});

并检查链接以进行预览

https://plnkr.co/edit/Sp107XonpFuduCEQyccb?p=preview

您可以通过以下方式旋转它:设置变量以将元素作为目标。单击按钮时运行一个函数。 该函数采用div的样式并旋转180度

var button = document.querySelector('.button-they-can-click');
var gameWrap = document.querySelector('.game-wrapper');

button.addEventListener('click', function(){
  gameWrap.style.webkitTransform = 'rotate(180deg)';
  gameWrap.style.MozTransform = 'rotate(180deg)';
  gameWrap.style.msTransform = 'rotate(180deg)';
  gameWrap.style.OTransform = 'rotate(180deg)';
  gameWrap.style.transform = 'rotate(180deg)';
})
Hi please refer this link which i use the angular 

https://plnkr.co/edit/Sp107XonpFuduCEQyccb?p=preview

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM