CSS3旋转动画

Bor*_*rsn 224 animation image rotation css3

<img class="image" src="" alt="" width="120" height="120">
Run Code Online (Sandbox Code Playgroud)

无法让这个动画图像工作,它应该做360度旋转.

我想下面的CSS有些不对劲,因为它只是保持不动.

.image {
    float: left;
    margin: 0 auto;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 120px;
    height: 120px;
    margin-top: -60px;
    margin-left: -60px;

    -webkit-animation-name: spin;
    -webkit-animation-duration: 4000ms;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-timing-function: linear;

    -moz-animation-name: spin;
    -moz-animation-duration: 4000ms;
    -moz-animation-iteration-count: infinite;
    -moz-animation-timing-function: linear;

    -ms-animation-name: spin;
    -ms-animation-duration: 4000ms;
    -ms-animation-iteration-count: infinite;
    -ms-animation-timing-function: linear;

    animation-name: spin;
    animation-duration: 4000ms;
    animation-iteration-count: infinite;
    animation-timing-function: linear;

    @-ms-keyframes spin { 
        from { 
            -ms-transform: rotate(0deg); 
        } to { 
            -ms-transform: rotate(360deg); 
        }
    }
    @-moz-keyframes spin { 
        from { 
            -moz-transform: rotate(0deg); 
        } to { 
            -moz-transform: rotate(360deg); 
        }
    }
    @-webkit-keyframes spin { 
        from { 
            -webkit-transform: rotate(0deg); 
        } to { 
            -webkit-transform: rotate(360deg); 
        }
    }
    @keyframes spin { 
        from { 
            transform: rotate(0deg); 
        } to { 
            transform: rotate(360deg); 
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Gio*_*ona 473

这是一个演示.正确的动画CSS:

.image {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 120px;
    height: 120px;
    margin:-60px 0 0 -60px;
    -webkit-animation:spin 4s linear infinite;
    -moz-animation:spin 4s linear infinite;
    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); } }
Run Code Online (Sandbox Code Playgroud)
<img class="image" src="http://i.stack.imgur.com/pC1Tv.jpg" alt="" width="120" height="120">
Run Code Online (Sandbox Code Playgroud)


关于代码的一些注意事项:

  1. 您嵌套了.image规则中的关键帧,这是不正确的
  2. float:left 不适用于绝对定位的元素
  3. 看看caniuse:IE10不需要-ms-前缀

  • 当我运行动画时,我差点把水吐出来. (14认同)
  • 如果有人在他们自己的代码中尝试这个:不要忘记底部的@部分 (12认同)

小智 30

我有一个旋转图像使用与你相同的东西:

.knoop1 img{
    position:absolute;
    width:114px;
    height:114px;
    top:400px;
    margin:0 auto;
    margin-left:-195px;
    z-index:0;

    -webkit-transition-duration: 0.8s;
    -moz-transition-duration: 0.8s;
    -o-transition-duration: 0.8s;
    transition-duration: 0.8s;

    -webkit-transition-property: -webkit-transform;
    -moz-transition-property: -moz-transform;
    -o-transition-property: -o-transform;
     transition-property: transform;

     overflow:hidden;
}

.knoop1:hover img{
    -webkit-transform:rotate(360deg);
    -moz-transform:rotate(360deg); 
    -o-transform:rotate(360deg);
}
Run Code Online (Sandbox Code Playgroud)

  • 请在破碎的网站链接上选择本地示例. (3认同)

Nit*_*esh 28

为实现360度旋转,这是工作解决方案.

HTML:

<img class="image" src="your-image.png">
Run Code Online (Sandbox Code Playgroud)

CSS:

.image {
    overflow: hidden;
    transition-duration: 0.8s;
    transition-property: transform;
}
.image:hover {
    transform: rotate(360deg);
    -webkit-transform: rotate(360deg);
}
Run Code Online (Sandbox Code Playgroud)

您必须将鼠标悬停在图像上,您才能获得360度旋转效果.

PS:-webkit-为它添加扩展程序以处理chrome和其他webkit浏览器.您可以在这里查看webkit的更新小提琴