点击时旋转图像

时间:2016-03-16 18:07:50

标签: jquery css3

我想在单击跨度时旋转图像

所以jquery需要在点击时调用css效果......但没有任何事情发生。怎么了?

https://jsfiddle.net/cc4tg1b7/1/

HTML

<span class='l'>
    <img src='http://icons.iconarchive.com/icons/paomedia/small-n-flat/1024/sign-check-icon.png'>
    rotate image on click
</span>

CSS

.l img {
    width: 30px;
    height: 30px;
}

.li img {
    animation: spin 4s linear infinite;
}

@-moz-keyframes spin {
    100% {
        -moz-transform: rotate(360deg);
    }
}

@-webkit-keyframes spin {
    100% {
        -webkit-transform: rotate(360deg);
    }
}

@keyframes spin {
    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg);
    }
}

JS

$(function () {
    $(document).on("click", ".l", function () {

        $('.l img').toggleClass(".li img");

    });
});

3 个答案:

答案 0 :(得分:2)

你的css定义和toggleClass的使用有轻微错误。

这是JS代码。

$('.l img').toggleClass("spin");

CSS

.l img{
  width:30px;
  height:30px;
}
.l img.spin{
  animation:spin 4s linear infinite;
}

see it in fiddle

答案 1 :(得分:2)

在点击功能

中将代码更改为此代码

$(this).toggleClass("li");

根据您编写的CSS规则,如果图像的包装范围具有类li

,则图像将会旋转

同时使用$(this)确保您只旋转点击的图片而不是所有图片。

<强> Working Fiddle

答案 2 :(得分:1)

需要在您的代码中进行小改动,你已经编写了css as .li img {...}这里你需要删除img和jquery以及toggleClass

$( document ).on( "click", "img", function() {
$('.l img').toggleClass("li");

});
.l img{
  width:30px;
  height:30px;
}
.li{
  animation:spin 4s linear infinite;
}

@-moz-keyframes spin { 100% { -moz-transform: rotate(360deg); } }
@-webkit-keyframes spin { 100% { -webkit-transform: rotate(360deg); } }
@keyframes spin { 100% { -webkit-transform: rotate(360deg); transform:rotate(360deg); } }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<span class='l'><img src='http://icons.iconarchive.com/icons/paomedia/small-n-flat/1024/sign-check-icon.png'>rotate image on click</span>