单击后使用JavaScript旋转图像

单击后使用JavaScript旋转图像,javascript,html,css,image,rotation,Javascript,Html,Css,Image,Rotation,img{ 显示:块; 利润率:20px; 宽度:50px; 高度:50px; } .交叉旋转{ -webkit转换持续时间:1s; -moz转换持续时间:1s; -o-过渡持续时间:1s; 过渡时间:1s; -webkit转换属性:-webkit转换; -moz变换特性:-moz变换; -o-变换性质:-o-变换; 过渡性质:变换; 大纲:0; } .crossRotate.active{ -webkit变换:旋转(180度); -moz变换:旋转(180度); -ms变换:旋转(180度);

img{
显示:块;
利润率:20px;
宽度:50px;
高度:50px;
}
.交叉旋转{
-webkit转换持续时间:1s;
-moz转换持续时间:1s;
-o-过渡持续时间:1s;
过渡时间:1s;
-webkit转换属性:-webkit转换;
-moz变换特性:-moz变换;
-o-变换性质:-o-变换;
过渡性质:变换;
大纲:0;
}
.crossRotate.active{
-webkit变换:旋转(180度);
-moz变换:旋转(180度);
-ms变换:旋转(180度);
-o变换:旋转(180度);
变换:旋转(180度);
}

$('.crossRotate')。在('click',function()上{
$(this.toggleClass('active');
});
JS-Bin

您需要等待文档完全加载才能附加单击事件,为此,您可以使用以下方法之一:

1-jQuery就绪事件:

$(document).ready(function() {
    //DOM is fully loaded. you can safely attach events
});
<body>
    <!-- Your HTML Here -->
    <script>
        //The page can be manipulated safely here !
    </script>
</body>
或快捷方式:

$(function() {
    //DOM is fully loaded. you can safely attach events
});
2-将脚本放在结束标记之前

$(document).ready(function() {
    //DOM is fully loaded. you can safely attach events
});
<body>
    <!-- Your HTML Here -->
    <script>
        //The page can be manipulated safely here !
    </script>
</body>

JS-Bin
$(函数(){
$('.crossRotate')。在('click',function()上{
$(this.toggleClass('active');
});
});

所以我基本上必须把脚本放在CSS文件之后?无论如何,感谢您的帮助,它工作得很好。@Ismail RBOUH是正确的,您必须在加载页面后添加click函数,以便javascript能够找到它附加click处理程序的元素。在最初的设置中,javascript是在加载页面(及其所有元素)之前运行的,它还没有看到“.crossRotate”元素,因此无法将单击处理程序附加到该页面。以下代码是加载网页后运行的加载函数:$(函数(){//write code here})@LukášJirůšek请查看更新的答案以了解更多详细信息。@IsmailRBOUH所以基本上将脚本放在正文的末尾将确保页面将被加载,然后脚本将被启动,对吗?谢谢你的更新,你救了我一天。@LukášJirůšek没错。祝你好运,不客气。