公告滚动效果

效果展示

公告滚动

代码展示vue3.2 框架

  1. template
 <!-- 父盒子设置高度宽度限定范围,内容超过部分隐藏,用绝对定位做滚动子绝父相-->
 <div class="content-box" style="height: 100%; overflow: hidden; position: relative">
  <!-- 子盒子子绝父相,且设定距离顶部top动态值-->
      <div
        class="content"
        style="position: absolute; width: 100%"
        :style="{ top: listTop + 'px' }"
      >
          <div
            v-for="(item, index) of messageList"
            :key="index"
            class="list"
          >
            <div class="message-info">{{ item.nr || '' }}</div>
          </div>
       </div>
   </div>

2.script

<script lang="ts" setup>
 // 轮播,滚动公告,衔接滚动
 const listTop = ref(0); // top值初始化
 const setScroll = () => {
   var t = setInterval(() => { // 每隔20执行
     listTop.value -= 1;    // -1
     if (listTop.value === -40) {   // 每个item高度为40,当第一个item上去后执行
       messageList.value.push(messageList.value.splice(0, 1)[0]); // 删除数组第一个元素,插入到数组后面
       // 注意splice改变原数组,返回删除项
       listTop.value = 0; //重置top
       clearInterval(t); //取消定时器
       //设置一个2秒后执行的定时器,重新开启滚动
       setTimeout(() => {
         setScroll();
       }, 2000);
     }
   }, 20);
 };
 setScroll(); // 渲染即执行
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值