微信小程序实现中奖公告栏滚动轮播效果

本文分享了使用微信小程序的swiper组件实现公告栏滚动效果的方法。通过垂直滚动、自动播放和循环显示等功能,展示了如何在小程序中优雅地展示动态公告信息。

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

我是热衷分享的小北。你们是热衷点赞的天使。

Let‘s go 不花里胡哨,先上效果图

在这里插入图片描述

解释:向上滚动,用了小程序的swiper,下面上代码

勤劳是中华民族的特性,请复制测试,动手丰衣足食。

HTML

<view class='notice'>
  <view class='notice-contain'>
    <view class="notice-containTitle">公告栏</view>
    
    <swiper class="tab-right" vertical="true" autoplay="true" circular="true"  interval="2000" display-multiple-items='1'>
        <view class="right-item">
            <block wx:for-index="idx" wx:for='{{aa}}'>
                <swiper-item>
                    <view class='content-item'>
                        <view class="time">{{item.time}}分钟前</view>
                        <view class='name'>{{item.nickName}}提现了</view>
                        <view class='wawa'>{{item.reward}}</view>
                    </view>
                </swiper-item>
            </block> 
            
        </view>
    </swiper>
    </view>
    </view>

css .

/* 公告栏 */
 .notice{
  display: flex;
  justify-content: center;
  align-items: center;

  margin-top: 22rpx;
  
 }
 .notice-contain{
  box-shadow:0px 1px 1px 1px rgba(202, 199, 199, 0.993);
   
  display:flex;
  flex-direction: row;
  background:#FFFFFF;
  width:700rpx;
  height: 82rpx;
  border-radius: 10px;
  justify-content:center;
  align-items:center;
 }
.notice-containTitle{
  font-weight:bold;
  font-size:32rpx;
  position: relative;
  /* top: 0; */
  left: 14rpx;
}
.notice-containTitle::after{
  position: absolute;
  top: -4rpx;
  left: 110rpx;
  content: "";
  display: block;
  background: #AAAAAA;
  width: 2px;
  height: 54rpx;
}

js

data(){
			return{
			   aa:[     //放三个,要自己加上去。
      {   
          time:7,
          nickName:"猪***能",
          reward:"2"
      },
      {   
          time:12,
          nickName: "画**",
          reward: "2"
      },
      {
          time:14,
          nickName: "wang**",
          reward: "2"
      },
  ],
			}
},
### 微信小程序滚动公告栏实现方法 #### 左右滚动公告栏 为了实现微信小程序中的左右滚动公告栏功能,可以通过设置 `scroll-view` 组件来完成。以下是基于引用[1]的内容所整理的代码示例: ```html <view class="notice"> <scroll-view scroll-x="{{true}}" class="scroll-text" style="white-space:nowrap;"> <text>{{noticeText}}</text> </scroll-view> </view> ``` 在 `.wxss` 文件中定义样式如下: ```css .notice { width: 100%; overflow: hidden; } .scroll-text { display: inline-block; animation: move 10s linear infinite; /* 动画控制 */ } @keyframes move { from { transform: translateX(100%); } to { transform: translateX(-100%); } } ``` 上述代码实现了文字从右向左连续滚动效果[^1]。 --- #### 上下滚动公告栏 对于上下滚动公告栏的功能,则需利用 `scroll-view` 和定时器配合实现。以下是一个完整的例子,展示如何调整显示行为并支持多条数据循环播放。 `.wxml` 文件配置如下: ```html <scroll-view class="scroll-container" scroll-y="{{true}}" bindscrolltolower="onScrollToLower" lower-threshold="50"> <block wx:for="{{notices}}" wx:key="index"> <view class="item">{{item.text}}</view> </block> </scroll-view> ``` 对应的 `.js` 脚本逻辑为: ```javascript Page({ data: { notices: [ { text: '这是第一条通知...' }, { text: '这是第二条通知...' }, { text: '这是第三条通知...' } ], intervalId: null, }, onLoad() { this.startAutoScroll(); }, onUnload() { clearInterval(this.data.intervalId); }, startAutoScroll() { const that = this; let currentIndex = 0; function autoScroll() { const newData = [...that.data.notices]; newData.push(newData.shift()); that.setData({ notices: newData }); } this.data.intervalId = setInterval(autoScroll, 2000); // 设置间隔时间为2秒 }, onScrollToLower() { console.log('触底加载更多...'); } }); ``` 同时,在 `.wxss` 中定义布局样式: ```css .scroll-container { height: 100rpx; /* 单行高度 */ border: 1px solid #ccc; box-sizing: border-box; overflow: hidden; } .item { line-height: 100rpx; font-size: 30rpx; padding-left: 20rpx; } ``` 此部分代码展示了如何通过 JavaScript 控制列表项顺序变化以及自动触发更新操作[^2]。 --- #### 垂直无限轮播优化方案 如果希望进一步提升用户体验,还可以引入双层时间差机制(即引用[3]提到的方法),从而让过渡更加平滑自然。具体做法是在每次切换前预留一段缓冲期用于计算新位置偏移量,并据此设定合适的动画持续时长。 核心思路在于合理分配两个计时期间的比例关系——假设单个项目的实际移动距离固定不变的话,那么总耗时就等于基础单位乘以其像素值之积[^3]。 最终呈现出来的视觉效果将是既流畅又不失节奏感的理想状态! ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值