我用2个项目集合构建选框/旋转木马效果。将item-collection
两个translateX
范围转为procedure TForm1.Button1Click(Sender: TObject);
begin
ProccesSupervisor:= TMyThread0.Create(True);
ProccesSupervisor.FreeOnTerminate:=true;
ProccesSupervisor.Priority := tpNormal;
ProccesSupervisor.Resume;
end;
procedure TMyThread0.Execute;
begin
repeat
//some code here
until ProccesSupervisor.terminated=true;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
ProccesSupervisor.Terminate;
ProccesSupervisor.WaitFor;
end;
并不困难(here the fiddle),但我不喜欢每个循环结束时的空白区域。
知道这两个系列的宽度可能不同,我怎样才能达到"连续性"因此,在第一个循环之后,第一个集合(青色)出现在第二个集合(品红色)之后。
非常感谢任何指向CSS或JS解决方案的指针... =)
答案 0 :(得分:5)
如果选取框足够大,您可以在动画中期交换其中一个收藏夹。
这就是你可以单独使用CSS,我想
.marquee {
width: 100%;
height: 80px;
margin: 0 auto;
overflow: hidden;
white-space: nowrap;
border: 1px solid blue;
}
.marquee-content {
display: inline-block;
margin-top: 5px;
animation: marquee 5s linear infinite;
}
.item-collection-1 {
position: relative;
left: 0%;
animation: swap 5s linear infinite;
}
@keyframes swap {
0%, 50% {
left: 0%;
}
50.01%,
100% {
left: 100%;
}
}
.marquee-content:hover {
animation-play-state: paused
}
.item1 {
display: inline-block;
height: 70px;
width: 140px;
background: cyan;
vertical-align: top;
margin-left: 15px;
}
.item2 {
display: inline-block;
height: 70px;
width: 100px;
background: magenta;
vertical-align: top;
margin-left: 15px;
line-height: 14px;
}
/* Transition */
@keyframes marquee {
0% {
transform: translateX(0)
}
100% {
transform: translateX(-100%)
}
}
<div class="marquee">
<div class="marquee-content">
<span class="item-collection-1">
<span class="item1"></span>
<span class="item1"></span>
<span class="item1"></span>
<span class="item1"></span>
<span class="item1"></span>
<span class="item1"></span>
<span class="item1"></span>
</span>
<span class="item-collection-2">
<span class="item2"></span>
<span class="item2"></span>
<span class="item2"></span>
<span class="item2"></span>
<span class="item2"></span>
<span class="item2"></span>
<span class="item2"></span>
<span class="item2"></span>
</span>
</div>
<div>