Проблемы с анимацией CSS3 Marquee

Я делаю биржевой тикер, все идет хорошо, но у меня проблема с моим CSS.

Биржевой тикер имеет бегущую строку, он прокручивается на всем протяжении, но не может завершить один цикл. Биржевой тикер должен быть высотой 2 эм (а это и есть). Однако, поскольку список акций довольно обширен, у него никогда не будет шанса дойти до конца, поэтому большинство акций никогда не попадают в поле зрения.

Я почти уверен, что это связано с css: animation: marquee 10s linear infinite; так как шатер укорачивается каждые 10 секунд. Я прикрепил jsfiddle, чтобы любой щедрый человек мог экспериментировать.

 .box {

    width: 100%;
    display: block;
    padding-top: 5px;
    font-family:"HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
    font-weight: 300;
}
.floatleft2 {

    float:left;
    display: block;
    padding-top: 5px;
    font-family:"HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
    font-weight: 300;
    font-size: 12px;
}
.stockSymbolnew {
}
.stockWrapper {
    height: 2em;
    text-indent: -1000em;
    display: block;
    padding-top: 5px;
    font-family:"HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
    font-weight: 300;
}
.stockSymbol {
    font-weight: 600;
}
.stockPrice {
    font-weight: 600;
    color: red;
}
.stockChange {
    font-weight: 600;
    color: green;
}
.stockTime {
    font-weight: 600;
    color: grey;
    font-size: smaller;
}
h2 {
    font-size: 1.5em;
}
p {
    margin-bottom: 0.5em;
}
.symbol {
    float: left;
    margin-right: 0px;
}
.symbol .name {
    display: block
}
.symbol.up {
    background: #70DB70
}
.symbol.up .change {
    color: green
}
.symbol.down {
    background: #f7cdc2
}
.symbol.down .change {
    color: red
}
#verticalScroller {
    position: absolute;
    width:268px;
    height: 2em;

    border: 0px solid red;
    overflow: hidden;
}
#verticalScroller > div {
    height: 2em;
    position:absolute;
    width:268px;
    border: 0px solid blue;
    overflow:hidden;
}
div.marquee > div > div > div:nth-child(odd) {
    background: #eee;
}
div.marquee > div > div > div {
    padding-right: 15px;
}
.container {
        height: 2em;
    margin: 1em auto;
    overflow: hidden;
    background: white;
    position: relative;
    box-sizing: border-box;
}
.marquee {
height: 2em;
    top: 6em;
    position: relative;
       animation-name: example;
    animation-duration: 5s;
    animation-timing-function: linear;
    animation-delay: 2s;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation: marquee 10s linear infinite;
}
.marquee:hover {
    animation-play-state: paused;
}

@keyframes marquee {
    0% {
        top: 2em
    }
    100% {
        top: -11em
    }
}

https://jsfiddle.net/phbakdLe/1/

С уважением, Сэм


person user3036451    schedule 27.07.2015    source источник


Ответы (1)


Высота контента, который вы хотите отобразить, превышает 20 метров. Если вы измените это значение на 825 пикселей, отобразятся все акции. После этого времени маловато, должно работать 35с.

.marquee {
    top: 6em;
    position: relative;
    box-sizing: border-box;
    animation: marquee 35s linear infinite;
}

@keyframes marquee {
    0% {
        top: 2em
    }
    100% {
        top: -825px
    }
}
person Markus Bucher    schedule 27.07.2015