<scroll-view class="container">
<view class="scrolltxt">
<view class="marquee_box">
<view class="marquee_text" style="transform: translateX(-{{marqueeDistance}}px)">
<text>{{text}}</text>
<text style="margin-right:{{marquee_margin}}px;"></text>
<text style="margin-right:{{marquee_margin}}px;">{{text}}</text>
</view>
</view>
</view>
</scroll-view>
.container {height: 100%;display: flex;flex-direction: column;justify-content: space-between;box-sizing: border-box;}
.scrolltxt{padding:0 20rpx;background:#f8f8f8;}
.marquee_box {position:relative;color:#333;height:90rpx;display:block;overflow:hidden;}
.marquee_text {white-space: nowrap;position:absolute;top:0;font-size:14px;height:90rpx;line-height:90rpx;}
Page({
data: {
text: "这是一条测试公告,看看效果怎么样,2019年3月23日",
marqueePace: 1,
marqueeDistance: 0,
marquee_margin: 30,
size:14,
interval: 20
},
onLoad: function (options) {
},
onShow: function () {
var that = this;
var length = that.data.text.length * that.data.size;
var windowWidth = wx.getSystemInfoSync().windowWidth;
that.setData({
length: length,
windowWidth: windowWidth
});
that.scrolltxt();
},
scrolltxt: function () {
var that = this;
var length = that.data.length;
var windowWidth = that.data.windowWidth;
if (length > windowWidth){
var interval = setInterval(function () {
var maxscrollwidth = length + that.data.marquee_margin;
var crentleft = that.data.marqueeDistance;
if (crentleft < maxscrollwidth) {
that.setData({
marqueeDistance: crentleft + that.data.marqueePace
})
}else {
that.setData({
marqueeDistance: 0
});
clearInterval(interval);
that.scrolltxt();
}
}, that.data.interval);
}else{
that.setData({ marquee_margin:"1000"});
}
},
})