使用CSS3在屏幕上移动图像

时间:2014-04-20 15:43:50

标签: image css3 animation transition

当你加载页面时,我一直在浏览网页很长一段时间试图找到一种方法让图标移动到屏幕上(从左侧到身体div的中心)。如何才能做到这一点?

这是我到目前为止所做的:

CSS3

a#rotator {
    text-decoration: none;
    padding-right: 20px;
    margin-left: 20px;
    float: left;
}

a#rotator img {
    -webkit-transition: all 1s ease-in-out;
    -moz-transition: all 1s ease-in-out; 
    -o-transition: all 1s ease-in-out; 
    -ms-transition: all 1s ease-in-out; 
    border-radius:60px;
    transition-duration: 1s;
    }

a#rotator img:hover { 
    box-shadow: 0 3px 15px #000;
    -webkit-transform: rotate(360deg); 
    -moz-transform: rotate(360deg); 
    -o-transform: rotate(360deg);
    -ms-transform: rotate(360deg); 
    transform: translate()
}

2 个答案:

答案 0 :(得分:5)

如果您想要纯CSS解决方案,可以使用CSS3动画功能。 您可以使用关键字@animation创建或声明一个动画,后跟您要为该动画指定的名称。在花括号内,您必须指明动画的关键帧以及将在该关键帧中应用的CSS属性,以便完成关键帧之间的转换。 您必须使用关键字fromto指定至少两个关键帧,动画的开头和结尾,然后是大括号内的属性。例如:

@keyframes myanimation
{
    from {
        left: 0;
    }
    to {
        left: 50%;
    }
}

或者有三个关键帧的示例(百分比表示持续时间的百分比):

@keyframes myanimation
{
    0% {
        left: 0;
    }
    10% {
        left: 50%;
    }
    100% {
        left: 10%;
    }
}

创建动画后,必须指定要设置动画的元素,它只是CSS规则中与元素匹配的animation属性。请注意,值中的名称必须与您之前创建的名称相匹配,并且您必须与动画的持续时间相匹配。例如:

a#rotator {
    animation: myanimation 5s;
}

您可以在此处指定持续时间,必须重复的次数等。您可以在此处阅读完整规范:http://www.w3.org/TR/css3-animations/

在这里,您可以看到一个包含您提供的代码的工作示例:http://jsfiddle.net/mcSL7/1/

我已停止浮动元素,并且我已将其分配给绝对位置,因此我可以使用顶部和左侧属性将其移动到正文中。

几乎所有现代浏览器都支持此CSS功能,即使其中一些浏览器需要-webkit-vendor前缀。请在此处查看:http://caniuse.com/#feat=css-animation

答案 1 :(得分:1)

使用jQuery

HTML

<div id="b">&nbsp;</div>

CSS

div#b {
    position: fixed;
    top:40px;
    left:0;
    width: 40px;
    height: 40px;
    background: url(http://www.wiredforwords.com/IMAGES/FlyingBee.gif) 0 0 no-repeat;
}

脚本

var b = function($b,speed){


    $b.animate({
        "left": "50%"
    }, speed);
};

$(function(){
    b($("#b"), 5000);
});

请参阅jsfiddle http://jsfiddle.net/vishnurajv/Q4Jsh/