微信小程序文字循环滚动

这是一个使用微信小程序实现的横向滚动文字效果。代码通过设置样式和定时器动态改变文字的位置,当文字完全滚动出去后,重新回到初始位置,形成无限滚动的效果。主要涉及到CSS的定位和JavaScript的定时器操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

<view class="marquee">
	<view class="main" style="transform: translateX({{move}}px);">
		种一颗树最好的时间是十年前,其次是现在
	</view>
</view>
.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;
}
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);
  },
})
### 微信小程序实现文字滚动效果的方法 在微信小程序中创建文字滚动效果可以通过 CSS 动画来完成。下面是一个具体的例子,展示了如何设置 `.wxss` 文件中的样式以及 `wxml` 中对应的结构。 #### 样式定义 (`.wxss`) 为了使文字能够自动滚动,在类名为 `scroll-text` 的元素上应用动画属性: ```css .container { background-color: #ccc; height: 150rpx; margin: 20rpx; overflow: hidden; } .txt-light { color: #acadbe; } .scroll-text { white-space: nowrap; /* 防止文本换行 */ animation: scroll-left 10s linear infinite; /* 定义无限循环的线性左移动画 */ } @keyframes scroll-left { from { transform: translateX(100%); } to { transform: translateX(-100%); } } ``` 上述代码设置了容器的高度、背景颜色和其他基本样式,并通过 `white-space: nowrap` 来防止多行显示[^1]。同时利用了 `animation` 属性配合自定义的关键帧 (`@keyframes`) 创建了一个持续向左侧移动的文字流动效果。 #### 页面布局 (`.wxml`) 接着是在页面文件里加入相应的 HTML 结构以便展示滚动文字内容: ```html <view class="container"> <text class="txt-light scroll-text">这是一条正在滚动的消息,可以用来做公告栏或者其他用途。</text> </view> ``` 这段 WXML 代码片段描述了一个简单的视图组件,其中包含了具有特定样式的文本节点用于呈现滚动消息。 #### JavaScript 控制逻辑 (可选) 如果希望动态改变滚动的内容或其他行为,则可以在关联的小程序脚本(`.js`)里面编写相应业务逻辑处理函数,但这不是必须的操作,取决于具体需求场景。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值