是否可以仅使用CSS重新创建选取框?

her*_*e 0 2 css html5 marquee css-animations

我有一个可以使用选框解决的要求

.ticker {
  white-space: no-wrap;
}
.item {
  display: inline-block;
  cursor: pointer;
}
Run Code Online (Sandbox Code Playgroud)
<marquee class="ticker" onmouseover="this.stop()" onmouseout="this.start()">
    <div class="item">Item 1</div>
    <div class="item">Item 2</div>
    <div class="item">Item 3</div>
    <div class="item">Item 4</div>
 </marquee>
Run Code Online (Sandbox Code Playgroud)

我们如何使这与html5兼容,因为marquee已被弃用?

我看过几个例子,但大多数都依赖于固定宽度.在我的示例中,从服务器接收项目,因此可能有很多项目.此外,我将需要停止悬停,因为项目是其他东西的链接.

非常感谢您的帮助,

PS:我想确保在开始探索javascript之前我们不能在CSS中执行此操作.

小智 5

这个codepen有一个很好的例子,你正在寻找什么.

为了让它在悬停时暂停,我添加了一个悬停状态来暂停动画:https: //codepen.io/anon/pen/zzpZyg

   .marquee:hover div {
      -webkit-animation-play-state: paused; /* Safari 4.0 - 8.0 */
        animation-play-state: paused;
    }
Run Code Online (Sandbox Code Playgroud)

body { margin: 20px; }

.marquee {
  height: 25px;
  width: 420px;

  overflow: hidden;
  position: relative;
}

.marquee div {
  display: block;
  width: 200%;
  height: 30px;

  position: absolute;
  overflow: hidden;

  animation: marquee 5s linear infinite;
}

.marquee span {
  float: left;
  width: 50%;
}

@keyframes marquee {
  0% { left: 0; }
  100% { left: -100%; }
}

.marquee:hover div {
  -webkit-animation-play-state: paused; /* Safari 4.0 - 8.0 */
    animation-play-state: paused;
}
Run Code Online (Sandbox Code Playgroud)
<div class="marquee">
  <div>
    <span>You spin me right round, baby. Like a record, baby.</span>
    <span>You spin me right round, baby. Like a record, baby.</span>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)


her*_*e 0 2

最后我找到了一个有效的,这是最终的产品https://fiddle.sencha.com/#view/editor&fiddle/228u

这是原始版本,https://codepen.io/lewismcarey/pen/GJZVoG

<div class="wrapper">
    <div class="container">
       <span>Span Me 1</span>
       <span>Span Me 2</span>
       <span>Span Me 3</span>
       <span>Span Me 4</span>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

诀窍是“左垫”包装器以最初隐藏容器。然后,“右击”容器,以便动画仅在容器离开屏幕后停止/重新启动。两个填充的大小都是相对的。display: block;添加到容器中,以便正确的填充使用包装器的大小。最后,我们在包装器的变换属性上添加动画。

谢谢你们,