【发布时间】:2019-06-18 07:42:32
【问题描述】:
我需要创建跨越浏览器窗口的两个选取框(一个带有重复图像,一个带有重复链接),无论大小如何;选取框项目最初需要显示在屏幕的左侧,而不是花费几秒钟的时间来显示。它们中的每一个都需要相距大约 20px/30px。选框需要看起来是无限的;也就是说,项目需要始终填满窗口的整个宽度。选取框需要在悬停时暂停。
我已经确定了我想要使用 CSS 完成的基本工作。在此回复https://stackoverflow.com/a/56524853/11623961 的帮助下,我能够在悬停时获得我正在寻找的暂停。
不幸的是,我仍然不确定如何使动画看起来没有间隙,就好像从右到左有无数个单词一样。我正在尝试实现一个类似于本网站顶部https://www.at-elier.org/ 的选框,但如果可能的话,使用 CSS 或必要时使用最少的 Javascript。
body {
margin: 0;
font-family: "UniversLTPro-Ex";
font-size: 30px;
}
a {
text-decoration: none;
color: #000;
}
.marquee {
height: 35px;
width: 100%;
overflow: hidden;
position: relative;
background-color: #e9e5fb;
border-top: 1px solid black;
border-bottom: 1px solid black;
padding: 8px 0 4px 0;
}
.marquee div {
display: inline-block;
width: 300%;
height: 40px;
position: absolute;
overflow: hidden;
animation: marquee 30s linear infinite;
}
.marquee span {
float: left;
width: 1100px;
}
.marquee:hover div {
animation-play-state: paused;
}
@keyframes marquee {
0% { left: 0%; }
100% { left: -1100px; }
}
/* @import must be at top of file, otherwise CSS will not work */
@import url("//hello.myfonts.net/count/3909a7");
@font-face {font-family: 'UniversLTPro-Ex';src: url('webfonts/3909A7_0_0.eot');src: url('webfonts/3909A7_0_0.eot?#iefix') format('embedded-opentype'),url('webfonts/3909A7_0_0.woff2') format('woff2'),url('webfonts/3909A7_0_0.woff') format('woff'),url('webfonts/3909A7_0_0.ttf') format('truetype');}
<div class="marquee">
<div>
<span><a href="#">twitter</a>
<a href="#">instagram</a>
<a href="#">pinterest</a>
<a href="#">spotify</a>
<a href="#">magazine</a> </span>
<span><a href="#">twitter</a>
<a href="#">instagram</a>
<a href="#">pinterest</a>
<a href="#">spotify</a>
<a href="#">magazine</a> </span>
</div>
</div>
【问题讨论】:
-
<marquee class="marquee">...</marquee> -
您需要使用 javascript 来实现这一点。它涉及在文本行进后克隆文本,可能是其宽度的一半。然后在行进一半宽度后对克隆进行克隆,并删除原始文本以防止创建大量元素。然后冲洗并重复。
-
@LawrenceCherone 虽然是一个可靠的回归,但不建议使用 元素,因为大多数浏览器不再支持它。 (但它仍然可以通过一些 polyfills 工作)
-
@WizardCoder 非常感谢!老实说,我既期待又害怕这个答案。我在不同的网站上注意到了类似的想法,但我希望有一个使用 CSS 的解决方案。我对 Javascript 很陌生,所以我不太确定如何到达那里。
-
@lucygoosey 如果您是 javascript 新手,这有点棘手。如果你用谷歌搜索“用于 jQuery 的文本滚动插件 - Marquee”,第一个结果是我以前使用过的插件,它可以让你做你需要的。不过它现在可能有点老了,所以请四处寻找替代品。
标签: javascript html css