我正在为一个客户建立一个网站,他们要求让他们销售的产品在滚动中旋转,类似于你在苹果网站上看到的:
http://www.apple.com/watch/
我有一个文件夹,里面的每一帧产品都在旋转。我想知道解决这个问题的最佳方法是什么。我猜在每一个卷轴上,图像都必须换成下一个?很难解释。
您可能希望将所有图像组合到一个单独的精灵中,并使用background-position
来更改"帧"。
下面是使用skrollr实现这一点的一种有点暴力的方法。我还使用了一个CSS预处理器,它使CSS比其他情况下更不冗长。
jsfiddle演示
Sass/SCS:
$image-width: 240;
.container {
position: fixed;
top: 0;
[class^="sprite-"], [class*=" sprite-"] {
background-image: url(http://i.imgur.com/vpjGWKb.png);
background-position: 0 0;
background-repeat: no-repeat;
position: absolute;
width: #{$image-width - 2}px;
height: 200px;
display: none;
}
@for $i from 0 through 17 {
.sprite-#{($i + 1)} {
background-position: unquote(-#{($i * $image-width)}px) 0;
}
}
}
.spacer-div {
margin-bottom: 2000px;
}
HTML:
<div class="container">
<div class="sprite-1" data-0p="display:block" data-5p="display:none"></div>
<div class="sprite-2" data-0p="display:none" data-5p="display:block" data-10p="display:none"></div>
<div class="sprite-3" data-0p="display:none" data-10p="display:block" data-15p="display:none"></div>
<div class="sprite-4" data-0p="display:none" data-15p="display:block" data-20p="display:none"></div>
<div class="sprite-5" data-0p="display:none" data-20p="display:block" data-25p="display:none"></div>
<div class="sprite-6" data-0p="display:none" data-25p="display:block" data-30p="display:none"></div>
<div class="sprite-7" data-0p="display:none" data-30p="display:block" data-35p="display:none"></div>
<div class="sprite-8" data-0p="display:none" data-35p="display:block" data-40p="display:none"></div>
<div class="sprite-9" data-0p="display:none" data-40p="display:block" data-45p="display:none"></div>
<div class="sprite-10" data-0p="display:none" data-45p="display:block" data-50p="display:none"></div>
<div class="sprite-11" data-0p="display:none" data-50p="display:block" data-55p="display:none"></div>
<div class="sprite-12" data-0p="display:none" data-55p="display:block" data-60p="display:none"></div>
<div class="sprite-13" data-0p="display:none" data-60p="display:block" data-65p="display:none"></div>
<div class="sprite-14" data-0p="display:none" data-65p="display:block" data-70p="display:none"></div>
<div class="sprite-15" data-0p="display:none" data-70p="display:block" data-75p="display:none"></div>
<div class="sprite-16" data-0p="display:none" data-75p="display:block" data-80p="display:none"></div>
<div class="sprite-17" data-0p="display:none" data-80p="display:block" data-85p="display:none"></div>
<div class="sprite-18" data-0p="display:none" data-85p="display:block" data-90p="display:none"></div>
<div class="sprite-1" data-0p="display:none" data-90p="display:block" data-95p="display:block"></div>
</div>
<div class="spacer-div">
</div>
页面上可以有多个图像,每个图像都描绘了动画中的一个帧。您可以根据自己的要求减少帧数。然后,你可以使用skrollr、scrollorama、scrollmagic等插件,并设置时间来淡入/淡出序列中的帧。