文字滚动(vue)

效果:

html代码:

         <div id="wrap" class="wrap">
            <div class="box">
              <p class="txt">
                收到<span style="color:red">钟汉</span>的离职申请已超过20天,请尽快处理;收到<span style="color:red">江浩</span>的离职申请已超过20天,请尽快处理;<span style="color:red">陈兰</span>已离职超过10天,请尽快结算薪酬;
              </p>
              
            </div>
          </div>

css代码:

// 文字滚动
.wrap {
  /* border: 1px solid #000; */
  font-size: 14px;
  color: #333;
  padding: 5px;
  // 强制不换行
  white-space: nowrap;
  overflow: hidden;
  width: 500px;
}

.box {
  width: 1200px;
  overflow: hidden;
}

.box p {
  display: inline-block;
}

js代码:

data() {
    return {
      wrap: "",
      box: "",
      p: "",
    };
  },
 mounted() {
    this.wrap = document.getElementById("wrap");
    this.box = wrap.getElementsByTagName("div")[0];
    this.p = document.getElementsByTagName("p")[0];
    this.fun();
  },
  methods: {
    // 文字滚动
    fun() {
      // offsetWidth返回一个元素的局部宽度
      if (this.wrap.offsetWidth > this.p.offsetWidth) {
        return false;
      }
      this.box.innerHTML += this.box.innerHTML;
      setTimeout(this.fun1, 50);
    },
    fun1() {
      if (this.wrap.offsetWidth > this.wrap.scrollLeft) {
        this.wrap.scrollLeft++;
        setTimeout(this.fun1, 15);
      } else {
        setTimeout(this.fun2, 50);
      }
    },
    fun2() {
      this.wrap.scrollLeft = 0;
      this.fun1();
    },
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值