前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >微信小程序文字循环滚动

微信小程序文字循环滚动

作者头像
明知山
发布2021-04-02 09:53:29
发布2021-04-02 09:53:29
2.7K00
代码可运行
举报
文章被收录于专栏:前端开发随笔前端开发随笔
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
复制
<view class="marquee">
	<view class="main" style="transform: translateX({{move}}px);">
		种一颗树最好的时间是十年前,其次是现在
	</view>
</view>
代码语言:javascript
代码运行次数:0
复制
.marquee {
  position: relative;
  width: 100%;
  height: 50rpx;
  line-height: 50rpx;
  white-space: nowrap;
  overflow: hidden;
  font-size: 24rpx;
  color: #fff;
  background: lightcoral;
}

.main {
  position: absolute;
}
代码语言:javascript
代码运行次数:0
复制
Page({
  data: {
    marWidth: 0,
    mainWidth: 0,
    move: 0,
    timer: "",
  },

  onLoad: function () {
    this.initMarquee()
  },

  initMarquee() {
    let query = wx.createSelectorQuery();
    // 获取装载体、文字的宽度
    query.select('.marquee').boundingClientRect((res) => {
      this.data.marWidth = parseInt(res.width)
    }).exec()
    query.select('.main').boundingClientRect((res) => {
      this.data.mainWidth = parseInt(res.width)
      this.moveText()
    }).exec()
  },

  moveText() {
    this.data.timer = setInterval(() => {
      // 每50毫秒移动0.5px
      this.setData({
        move: this.data.move - 0.5
      })
      // 如果完全移动,重新到后移
      if (parseInt(this.data.move) == -this.data.mainWidth) {
        this.setData({
          move: this.data.marWidth
        })
        clearInterval(this.data.timer)
        this.moveText()
      }
    }, 50);
  },
})
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/03/31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档