网站链接: 我爱捣鼓
当前位置: 首页 > 前端开发 > css

css实现弹幕滚动的效果

2022/5/1 22:23:21

想必大家应该经常看短视频吧,可能也会凑凑热闹发个弹幕,今天我们就来说说通过css实现弹幕滚动的效果。<html><head> <meta charset="UTF-8"><link rel="apple-touch-icon" type="image/png" href="https://cp…

        想必大家应该经常看短视频吧,可能也会凑凑热闹发个弹幕,今天我们就来说说通过css实现弹幕滚动的效果。

image.png

<html><head>
  <meta charset="UTF-8">
<link rel="apple-touch-icon" type="image/png" href="https://cpwebassets.codepen.io/assets/favicon/apple-touch-icon-5ae1a0698dcc2402e9712f7d01ed509a57814f994c660df9f7a952f3060705ee.png">
<meta name="apple-mobile-web-app-title" content="CodePen">
<link rel="shortcut icon" type="image/x-icon" href="https://cpwebassets.codepen.io/assets/favicon/favicon-aec34940fbc1a6e787974dcd360f2c6b63348d4b1f4e06c77743096d55480f33.ico">
<link rel="mask-icon" type="image/x-icon" href="https://cpwebassets.codepe    n.io/assets/favicon/logo-pin-8f3771b1072e3c38bd662872f6b673a722f4b3ca2421637d5596661b4e2132cc.svg" color="#111">
  <title>css实现弹幕滚动的效果www.woaidaogu.com</title>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css">
<style>
html, body {
  width: 100%;
  height: 100%;
  display: flex;
  background: url(https://cdn.boop.pl/uploads/2020/01/inferno-rift-landscape-transformation-lol-season-10-rise-of-the-elements.jpeg);
  background-size: cover;
}
.g-yasuo {
  position: absolute;
  top: 40px;
  left: 40px;
  width: 120px;
  height: 120px;
  background: url(https://s3.ax1x.com/2021/02/06/ytA3T0.png);
  background-size: cover;
  -webkit-animation: move 10s infinite alternate;
          animation: move 10s infinite alternate;
}
@-webkit-keyframes move {
  100% {
    transform: translate(calc(85vw), 0);
  }
}
@keyframes move {
  100% {
    transform: translate(calc(85vw), 0);
  }
}
.g-barrage-container {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  -webkit-mask: radial-gradient(circle at 100px 100px, transparent 60px, #fff 80px, #fff 100%);
          mask: radial-gradient(circle at 100px 100px, transparent 60px, #fff 80px, #fff 100%);
  -webkit-animation: mask 10s infinite alternate;
          animation: mask 10s infinite alternate;
}
@-webkit-keyframes mask {
  100% {
    -webkit-mask-position: 85vw 0;
            mask-position: 85vw 0;
  }
}
@keyframes mask {
  100% {
    -webkit-mask-position: 85vw 0;
            mask-position: 85vw 0;
  }
}
.g-barrage {
  position: absolute;
  color: #fff;
  font-size: 24px;
  opacity: 0.8;
}
.g-barrage:nth-child(1) {
  color: rgb(255, 255, calc(1 * 10));
  top: calc(1 * 18px);
  -webkit-animation: move calc(0.2s + 10s) infinite calc(2 * -1s) linear;
          animation: move calc(0.2s + 10s) infinite calc(2 * -1s) linear;
}
.g-barrage:nth-child(2) {
  color: rgb(255, 255, calc(2 * 10));
  top: calc(2 * 18px);
  -webkit-animation: move calc(0.4s + 10s) infinite calc(4 * -1s) linear;
          animation: move calc(0.4s + 10s) infinite calc(4 * -1s) linear;
}
.g-barrage:nth-child(3) {
  color: rgb(255, 255, calc(3 * 10));
  top: calc(3 * 18px);
  -webkit-animation: move calc(0.6s + 10s) infinite calc(6 * -1s) linear;
          animation: move calc(0.6s + 10s) infinite calc(6 * -1s) linear;
}
.g-barrage:nth-child(4) {
  color: rgb(255, 255, calc(4 * 10));
  top: calc(4 * 18px);
  -webkit-animation: move calc(0.8s + 10s) infinite calc(8 * -1s) linear;
          animation: move calc(0.8s + 10s) infinite calc(8 * -1s) linear;
}
.g-barrage:nth-child(5) {
  color: rgb(255, 255, calc(5 * 10));
  top: calc(5 * 18px);
  -webkit-animation: move calc(1s + 10s) infinite calc(10 * -1s) linear;
          animation: move calc(1s + 10s) infinite calc(10 * -1s) linear;
}
.g-barrage:nth-child(6) {
  color: rgb(255, 255, calc(6 * 10));
  top: calc(6 * 18px);
  -webkit-animation: move calc(1.2s + 10s) infinite calc(12 * -1s) linear;
          animation: move calc(1.2s + 10s) infinite calc(12 * -1s) linear;
}
.g-barrage:nth-child(7) {
  color: rgb(255, 255, calc(7 * 10));
  top: calc(7 * 18px);
  -webkit-animation: move calc(1.4s + 10s) infinite calc(14 * -1s) linear;
          animation: move calc(1.4s + 10s) infinite calc(14 * -1s) linear;
}
.g-barrage:nth-child(8) {
  color: rgb(255, 255, calc(8 * 10));
  top: calc(8 * 18px);
  -webkit-animation: move calc(1.6s + 10s) infinite calc(16 * -1s) linear;
          animation: move calc(1.6s + 10s) infinite calc(16 * -1s) linear;
}
.g-barrage:nth-child(9) {
  color: rgb(255, 255, calc(9 * 10));
  top: calc(9 * 18px);
  -webkit-animation: move calc(1.8s + 10s) infinite calc(18 * -1s) linear;
          animation: move calc(1.8s + 10s) infinite calc(18 * -1s) linear;
}
.g-barrage:nth-child(10) {
  color: rgb(255, 255, calc(10 * 10));
  top: calc(0 * 18px);
  -webkit-animation: move calc(2s + 10s) infinite calc(20 * -1s) linear;
          animation: move calc(2s + 10s) infinite calc(20 * -1s) linear;
}
.g-barrage:nth-child(11) {
  color: rgb(255, 255, calc(11 * 10));
  top: calc(1 * 18px);
  -webkit-animation: move calc(2.2s + 10s) infinite calc(22 * -1s) linear;
          animation: move calc(2.2s + 10s) infinite calc(22 * -1s) linear;
}
.g-barrage:nth-child(12) {
  color: rgb(255, 255, calc(12 * 10));
  top: calc(2 * 18px);
  -webkit-animation: move calc(2.4s + 10s) infinite calc(24 * -1s) linear;
          animation: move calc(2.4s + 10s) infinite calc(24 * -1s) linear;
}
.g-barrage:nth-child(13) {
  color: rgb(255, 255, calc(13 * 10));
  top: calc(3 * 18px);
  -webkit-animation: move calc(2.6s + 10s) infinite calc(26 * -1s) linear;
          animation: move calc(2.6s + 10s) infinite calc(26 * -1s) linear;
}
.g-barrage:nth-child(14) {
  color: rgb(255, 255, calc(14 * 10));
  top: calc(4 * 18px);
  -webkit-animation: move calc(2.8s + 10s) infinite calc(28 * -1s) linear;
          animation: move calc(2.8s + 10s) infinite calc(28 * -1s) linear;
}
.g-barrage:nth-child(15) {
  color: rgb(255, 255, calc(15 * 10));
  top: calc(5 * 18px);
  -webkit-animation: move calc(3s + 10s) infinite calc(30 * -1s) linear;
          animation: move calc(3s + 10s) infinite calc(30 * -1s) linear;
}
.g-barrage:nth-child(16) {
  color: rgb(255, 255, calc(16 * 10));
  top: calc(6 * 18px);
  -webkit-animation: move calc(3.2s + 10s) infinite calc(32 * -1s) linear;
          animation: move calc(3.2s + 10s) infinite calc(32 * -1s) linear;
}
.g-barrage:nth-child(17) {
  color: rgb(255, 255, calc(17 * 10));
  top: calc(7 * 18px);
  -webkit-animation: move calc(3.4s + 10s) infinite calc(34 * -1s) linear;
          animation: move calc(3.4s + 10s) infinite calc(34 * -1s) linear;
}
.g-barrage:nth-child(18) {
  color: rgb(255, 255, calc(18 * 10));
  top: calc(8 * 18px);
  -webkit-animation: move calc(3.6s + 10s) infinite calc(36 * -1s) linear;
          animation: move calc(3.6s + 10s) infinite calc(36 * -1s) linear;
}
.g-barrage:nth-child(19) {
  color: rgb(255, 255, calc(19 * 10));
  top: calc(9 * 18px);
  -webkit-animation: move calc(3.8s + 10s) infinite calc(38 * -1s) linear;
          animation: move calc(3.8s + 10s) infinite calc(38 * -1s) linear;
}
.g-barrage:nth-child(20) {
  color: rgb(255, 255, calc(20 * 10));
  top: calc(0 * 18px);
  -webkit-animation: move calc(4s + 10s) infinite calc(40 * -1s) linear;
          animation: move calc(4s + 10s) infinite calc(40 * -1s) linear;
}
.g-barrage:nth-child(21) {
  color: rgb(255, 255, calc(21 * 10));
  top: calc(1 * 18px);
  -webkit-animation: move calc(4.2s + 10s) infinite calc(42 * -1s) linear;
          animation: move calc(4.2s + 10s) infinite calc(42 * -1s) linear;
}
.g-barrage:nth-child(22) {
  color: rgb(255, 255, calc(22 * 10));
  top: calc(2 * 18px);
  -webkit-animation: move calc(4.4s + 10s) infinite calc(44 * -1s) linear;
          animation: move calc(4.4s + 10s) infinite calc(44 * -1s) linear;
}
.g-barrage:nth-child(23) {
  color: rgb(255, 255, calc(23 * 10));
  top: calc(3 * 18px);
  -webkit-animation: move calc(4.6s + 10s) infinite calc(46 * -1s) linear;
          animation: move calc(4.6s + 10s) infinite calc(46 * -1s) linear;
}
.g-barrage:nth-child(24) {
  color: rgb(255, 255, calc(24 * 10));
  top: calc(4 * 18px);
  -webkit-animation: move calc(4.8s + 10s) infinite calc(48 * -1s) linear;
          animation: move calc(4.8s + 10s) infinite calc(48 * -1s) linear;
}
.g-barrage:nth-child(25) {
  color: rgb(255, 255, calc(25 * 10));
  top: calc(5 * 18px);
  -webkit-animation: move calc(5s + 10s) infinite calc(50 * -1s) linear;
          animation: move calc(5s + 10s) infinite calc(50 * -1s) linear;
}
.g-barrage:nth-child(26) {
  color: rgb(255, 255, calc(26 * 10));
  top: calc(6 * 18px);
  -webkit-animation: move calc(5.2s + 10s) infinite calc(52 * -1s) linear;
          animation: move calc(5.2s + 10s) infinite calc(52 * -1s) linear;
}
.g-barrage:nth-child(27) {
  color: rgb(255, 255, calc(27 * 10));
  top: calc(7 * 18px);
  -webkit-animation: move calc(5.4s + 10s) infinite calc(54 * -1s) linear;
          animation: move calc(5.4s + 10s) infinite calc(54 * -1s) linear;
}
.g-barrage:nth-child(28) {
  color: rgb(255, 255, calc(28 * 10));
  top: calc(8 * 18px);
  -webkit-animation: move calc(5.6s + 10s) infinite calc(56 * -1s) linear;
          animation: move calc(5.6s + 10s) infinite calc(56 * -1s) linear;
}
.g-barrage:nth-child(29) {
  color: rgb(255, 255, calc(29 * 10));
  top: calc(9 * 18px);
  -webkit-animation: move calc(5.8s + 10s) infinite calc(58 * -1s) linear;
          animation: move calc(5.8s + 10s) infinite calc(58 * -1s) linear;
}
.g-barrage:nth-child(30) {
  color: rgb(255, 255, calc(30 * 10));
  top: calc(0 * 18px);
  -webkit-animation: move calc(6s + 10s) infinite calc(60 * -1s) linear;
          animation: move calc(6s + 10s) infinite calc(60 * -1s) linear;
}
</style>
  <script>
  window.console = window.console || function(t) {};
</script>
  <script>
  if (document.location.search.match(/type=embed/gi)) {
    window.parent.postMessage("resize", "*");
  }
</script>
</head>
<body translate="no">
  <div></div>
<div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div>
<div>6666666666666</div></div>
<div id="xl_chrome_ext_{4DB361DE-01F7-4376-B494-639E489D19ED}" style="display: none;">
      <div></div>
      <a id="xl_chrome_ext_download" href="javascript:;">下载视频</a>
      <a id="xl_chrome_ext_close" href="javascript:;"></a>
    </div></body></html>

        查看在线实例

        通过以上内容我们知道了css如何实现弹幕滚动的效果?感谢您访问“我爱捣鼓(www.woaidaogu.com)”网站的内容,希望对大家有所帮助!引用本文内容时,请注明出处!谢谢合作!

相关资讯

  • 设置英文首字母大写的css属性是什么?

    设置CSS text-transform 的属性为capitalize就可以实现英文首字母大写。 定义和用法  text-transform 属性控制文本的大小写。 属性值 值 描 述 none 默认。定义带有小写字…

    2021/7/14 20:35:17
  • 只让页面显示横滚动条,不显示竖滚动条如何实现?

    只让页面显示横滚动条,不显示竖滚动条的方法其实很简单,主要用到body的两个css属性 overflow和 overflow-y,如下所示:body { overflow:scroll; overflow-y:hidden;}

    2021/2/28 21:45:25
  • 网页的滚动条样式可以修改吗?如何修改?

    网页的滚动条样式可以修改的,主要是使用css来控制那如何修改呢?如下代码:<div class="inner"> <div class="innerbox"> <p style="height:200px;">这是内容111</p> <p style="hei…

    2021/2/28 21:15:24
  • css如何实现6张图片均匀排列在一行?

    css部分如下:img{width:120px; height:80px;float:left;margin-right:16px;}.img3{margin-right:0;}html部分如下:<img src="images/001.jpg" /><img src="images/002.jpg" /><img src="images/003.jpg" /><img src=…

    2021/2/28 21:10:01