微信小程序跑马灯

话不多说先上展示效果
在这里插入图片描述
接着上源码

<view class="trumpet"
	<image src="/pages/res/icon-trumpet.png" class='noticeImg' />
	<view class="example">
		<view class="marquee_box">
			<view class="marquee_text" style="{{orientation}}:{{marqueeDistance}}px;font-size: {{size}}px;">
				{{text}}
			</view>
		</view>
	</view>
</view>
.trumpet {
    margin: 0 30rpx 30rpx;
    background: #F6F7F9;
    border-radius: 40rpx;
    padding: 10rpx 20rpx 10rpx 60rpx;
    display: flex;
    align-items: center;
    height: 60rpx;
}

.noticeImg {
    width: 28rpx;
    height: 24rpx;
    margin-left: -30rpx;
}

.trumpet .marquee_box image {
    width: 28rpx;
    height: 24rpx;
    position: absolute;
    top: 5rpx;
    left: -40rpx;
}

.example {
    display: block;
    width: 100%;
    height: 60rpx;
    line-height: 60rpx;
    overflow: hidden;
}

.marquee_box {
    width: 100%;
    position: relative;
}

.marquee_text {
    white-space: nowrap;
    position: absolute;
    top: 0;

}
data:{
	text: '这是一条会滚动的文字滚来滚去的文字跑马灯,哈哈哈哈哈哈哈哈',
    marqueePace:2, //滚动速度 
    marqueeDistance: 0, //初始滚动距离
    marqueeDistance2: 0,
    marquee2copy_status: false,
    marquee2_margin: 60,
    size: 14,
    orientation: 'left', //滚动方向
    interval: 20, // 时间间隔
},

onShow: function () {
    // 跑马灯效果
    var length = that.data.text.length * that.data.size; //文字长度
    var windowWidth = wx.getSystemInfoSync().windowWidth; // 屏幕宽度
    that.setData({
        length: length,
        windowWidth: windowWidth,
        marquee2_margin: length < windowWidth ? windowWidth - length : that.data.marquee2_margin //当文字长度小于屏幕长度时,需要增加补白
    });
    that.run(); // 水平一行字滚动完了再按照原来的方向滚动
},
run: function () {
    var interval = setInterval(function () {
        if (-that.data.marqueeDistance < that.data.length) {
            that.setData({
                marqueeDistance: that.data.marqueeDistance - that.data.marqueePace,
            });
        } else {
            clearInterval(interval);
            that.setData({
                marqueeDistance: that.data.windowWidth
            });
            that.run();
        }
    }, that.data.interval)
},

参考文献 跑马灯,如有侵权望告知删除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值