其他分享
首页 > 其他分享> > css实现文字轮播,前端学习日志02

css实现文字轮播,前端学习日志02

作者:互联网

项目中遇到需求需要实现文字的滚动条(横向和竖向),由于要兼容多种浏览器,我使用了纯css进行实现,这里做一个分享希望能给大家一点启发。

横向滚动

首先是横向滚动条,这个比较简单,具体看以下代码:

html

<div class="label-content" id="label-content" v-show="showLunBo">
      <div class="lunbo_text">水库水位:正常</div>
    </div>

 

css

.label-content {
  position: absolute;
  right: 10%;
  top: 15%;
  width: 150px;
  height: 20px;
  background: rgba(139, 197, 245, 0.5);
  border: 2px solid #00a1ff;
  /* background-image: url("../../assets/文本框.png"); */
  border-radius: 4px;
  /* 必须 */
  overflow: hidden;
  /* 必须 */
  /* margin: 50px auto; */
  text-align: right;
}

@keyframes anis {
  0% {
    transform: translateX(100px)
  }
  100% {
    transform: translateX(-150px)
  }
}

.lunbo_text {
  color: white;
  animation: anis 10s linear infinite;
}

.lunbo_text :hover {
  animation-play-state: paused;
}

可以看到是使用了transform属性,通过translateX方法实现在X轴上的滚动,同时需要设置父组件overflow:hidden防止文本超出父容器时自动隐藏,并设置hover伪类当鼠标移至文本上时停止滚动。

竖向滚动

竖向滚动与横向滚动思路相同,但是由于需求原因,需要轮播的文字等待一段时间后再滚动,尽可能实现类似轮播图的效果,具体思路为详细设置自定义的动作,使其滚动至下一行时等待一段时间。

html代码

<div class="row-content" id="row-content" v-show="showRow">
      <ul id="comment1" class="row-list">
        <li>原水水质:合格</li>
        <li>供水水质:合格</li>
        <li>供水运行:正常</li>
        <li>原水水质:合格</li>
      </ul>
      <ul id="comment2" class="row-list"></ul>
    </div>

竖向轮播需要在最后一行添加第一行相同属性,得到更好的显示效果。

css代码

.row-content {
  position: absolute;
  right: 10%;
  top: 15%;
  width: 100px;
  height: 20px;
  background: rgba(139, 197, 245, 0.5);
  border: 2px solid #00a1ff;
  border-radius: 4px;
  /* 必须 */
  overflow: hidden;
  /* 必须 */
  /* margin: 50px auto; */
  text-align: center;
}
.row-content .row-list {
  list-style: none;
  color: white;
  animation: anis 10s linear infinite;
}
.row-content .row-list :hover {
  animation-play-state: paused;
}

@keyframes anis {
  0% {
    transform: translateY(0px);
  }
  25% {
    transform: translateY(0px);
  }
  33% {
     transform: translateY(-16px);
  }
  58% {
    transform: translateY(-16px);
  }
  66% {
    transform: translateY(-32px);
  }
  91% {
     transform: translateY(-32px);
  }
  100% {
    transform: translateY(-48px);
  }
}

与横向不同仅仅时横向滚动时使用translateX方法,而竖向使用translateY,具体运动轨迹可以自行进行设计,如要得到平滑滚动效果仅需要设置起点和终点即可。

标签:02,滚动,translateY,transform,横向,竖向,row,css,轮播
来源: https://blog.csdn.net/qq_39406445/article/details/114806188