2

我在页面顶部有一个大图形。这是一堆徽标,每个徽标都位于图形的自己的一小部分。我希望新徽标每 4 或 5 秒旋转到位,每个位置有 3 或 4 个徽标循环。

每个徽标的动画将只是一个徽标替换图像特定部分中的另一个徽标。从上方快速而平稳地滑入将是理想的。

你会选择什么方法?

谢谢!

奥斯汀

4

2 回答 2

4

看看Greensock 动画平台 (GSAP)。它是一个补间库,最初是为 ActionScript 开发的,现在已移植到 JavaScript。它非常强大,支持延迟、交错、重复、循环、反向等,并且在过去 4 或 5 年中或多或少地成为 Flash 动画的行业标准。

您可能会对时间线功能特别感兴趣,因为它使编排您在上面描述的动画类型变得轻而易举。例如,它允许您将一组单独的动画组合在一起,并像单个动画一样播放、循环、重复和反转它们。

于 2013-03-29T12:40:57.157 回答
2

这是使用 Greensock 的解决方案:http: //jsfiddle.net/brian_griffin/zquLC/ 我相信它完全符合您的要求。请注意,您必须两次包含第一个徽标才能形成完美的循环。

这也可以使用 CSS3 动画来完成,但旧版浏览器支持 Greensock。

(伪)HTML

<div id="container">
    <div class="logo" id="firstlogo">
        <img 1/>
        <img 2/>
        <img 3/>
        <img 1/>
    </div>
    <div class="logo" id="secondlogo">ditto</div>
    <div class="logo" id="thirdlogo">ditto</div>
</div>

CSS

#container {
    height:100px;
    overflow:hidden;
}
.logo {
    width:100px;
    height:400px;
    float:left;
    position:relative;
    top: -300px;
}
img {
    width:100px;
    height:100px;
    position:relative;
    display:block;
}

JS

var spd = 1.5 //seconds
var tl = new TimelineMax({repeat:-1})
tl.to('firstlogo', spd, {top:"+=0px"})
tl.to('firstlogo', spd, {top:"+=100px"})
tl.to('firstlogo', spd, {top:"+=0px"})
tl.to('firstlogo', spd, {top:"+=100px"})
tl.to('firstlogo', spd, {top:"+=0px"})
tl.to('firstlogo', spd, {top:"+=100px"})
于 2013-03-30T19:49:32.723 回答