传递给.css的参数不是有效对象。以下代码应该有效:
每次按下按钮时,我都想将我的blueRect从原来的位置旋转120度,我无法让它正常工作,有人能知道我的代码出了什么问题吗?我知道我没有掌握所有的前缀。jsfiddle:http://jsfiddle.net/a0mycee7/
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<style>
#blueRect{
width: 50px;
height: 50px;
background-color: #aaaaff;
border: solid 3px #000000;
margin-left: 30px;
transition: all 2s ease-out;
-moz-transition: all 2s ease-out;
}
</style>
<script type="text/javascript">
var angle = 0;
$('#right').click(function() {
//$(this).toggleClass('active');
angle+=120;
$('#blueRect').css ({
'transform: rotate(' + angle + 'deg)',
'-webkit-transform: rotate(' + angle + 'deg)',
'-moz-transform: rotate(' + angle + 'deg)',
'-o-transform: rotate(' + angle + 'deg)',
'-ms-transform: rotate(' + angle + 'deg)'
});
});
</script>
</head>
<body>
<div id="background">
<div id="blueRect">
</div>
</div>
<button id="right">1</button>
</body>
</html>
.css()
函数需要散列而不是数组:Fiddle
基本上,改变
$('#blueRect').css ({
'transform: rotate(' + angle + 'deg)',
'-webkit-transform: rotate(' + angle + 'deg)',
'-moz-transform: rotate(' + angle + 'deg)',
'-o-transform: rotate(' + angle + 'deg)',
'-ms-transform: rotate(' + angle + 'deg)'
});
至
$('#blueRect').css ({
'transform': 'rotate(' + angle + 'deg)',
'-webkit-transform': 'rotate(' + angle + 'deg)',
'-moz-transform': 'rotate(' + angle + 'deg)',
'-o-transform': 'rotate(' + angle + 'deg)',
'-ms-transform': 'rotate(' + angle + 'deg)'
});
这引发了一个错误BTW,因为您的初始代码有花括号({}
),但实际上应该有方括号([]
),因为它不包含键值对。下次好好利用浏览器中的JS控制台(或者使用Firefox时使用FireBug)。
(jQuery没有加载到fiddle中,也是必需的:)
var angle = 0;
$('#right').click(function() {
//$(this).toggleClass('active');
angle+=120;
$('#blueRect').css ({
'transform': 'rotate(' + angle + 'deg)',
'-webkit-transform': 'rotate(' + angle + 'deg)',
'-moz-transform': 'rotate(' + angle + 'deg)',
'-o-transform': 'rotate(' + angle + 'deg)',
'-ms-transform': 'rotate(' + angle + 'deg)'
});
});