欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

微信小程序?qū)崿F(xiàn)自上而下字幕滾動(dòng)

 更新時(shí)間:2018年07月14日 08:46:16   作者:yapeee  
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)自上而下字幕滾動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了微信小程序?qū)崿F(xiàn)字幕滾動(dòng)的具體代碼,供大家參考,具體內(nèi)容如下

需求:

實(shí)現(xiàn)框內(nèi)的文字自下而上的自動(dòng)循環(huán)滾動(dòng)。

解決方案:

第一種方法:

經(jīng)查詢,最一開始實(shí)現(xiàn)字幕滾動(dòng)是使用的微信小程序的swiper組件,后來發(fā)現(xiàn),使用swiper組件實(shí)現(xiàn)的效果類似于輪播圖,不符合需求。

<swiper class="swiper_container" vertical="true" autoplay="true" circular="true" interval="2000">
 <view class='list'>
 <view wx:for="{{List}}" wx:key="index">
 <swiper-item>
 <text class='txt-light'>{{item.checkTime}}</text> {{item.content}}
 </swiper-item>
 </view>
 </view>
</swiper>

第二種方法:

使用微信小程序的動(dòng)畫來來實(shí)現(xiàn)字幕滾動(dòng)。

思路:

1.當(dāng)list底部到container框的頂部時(shí),即,內(nèi)容全部走出了框外。結(jié)束字幕滾動(dòng),重新開始下一輪的滾動(dòng)。
2.計(jì)算container框的高度,list的高度。一個(gè)框中的內(nèi)容顯示時(shí)長為 1500(暫定),通過list的高度除以container框的高度來判斷顯示時(shí)長(求整數(shù)并加1(+1是為了顯示最后一個(gè)空白框))。

實(shí)現(xiàn):

wxml

<view class="container">
 <view class='list' animation="{{animationData}}">
 <view>
 <text class="txt-light">09:08</text> 很多人的一生,基本都是自己跟別人較勁,比如別人對(duì)自己的期待,比如把別人看得太重把自己看得太輕。其實(shí)一個(gè)人最應(yīng)該考慮的問題是,自己如何與自己相處,比如人去樓空的時(shí)候如何照顧好自己的孤獨(dú),比如夜深人靜的時(shí)候如何跟心靈溝通。自己跟自己能和諧共處,自己跟別人就能相安無事。
 </view>
 <view>
 <text class="txt-light">19:08</text> 平和是待人處事的一種態(tài)度,也是做人酌一種美德。平和既是一種修養(yǎng),又是一種工作方法。平和的人,從不被忙碌所縈繞,閑時(shí)吃緊,忙里悠閑。待人不嚴(yán),教人勿高。寬嚴(yán)得宜,分寸得體。身心自在,能享受生活之樂趣。平和的人生,是和諧的人生,健康的人生。
 </view>
 </view>
</view>

wxss

.container {
 background-color: #ccc;
 height:150rpx;
 margin: 20rpx 20rpx 20rpx 20rpx; 
 overflow:auto;
}
.txt-light {
 color:#acadbe;
}

js

Page({
 
 /**
 * 頁面的初始數(shù)據(jù)
 */
 data: {
 
 },
 
 /**
 * 生命周期函數(shù)--監(jiān)聽頁面加載
 */
 onLoad: function (options) {
 
 },
 
 /**
 * 生命周期函數(shù)--監(jiān)聽頁面初次渲染完成
 */
 onReady: function () {
 
 },
 
 /**
 * 生命周期函數(shù)--監(jiān)聽頁面顯示
 */
 onShow: function () {
 // this.util();
 this.getHeight();
 },
 util: function (obj) {
 console.log(obj);
 console.log(-obj.list);
 var continueTime = (parseInt(obj.list / obj.container) + 1) * 1500;
 var setIntervalTime = 50 + continueTime;
 
 var animation = wx.createAnimation({
 duration: 200, //動(dòng)畫時(shí)長
 timingFunction: "linear", //線性
 delay: 0 //0則不延遲
 });
 this.animation = animation;
 animation.translateY(obj.container).step({ duration: 50, timingFunction: 'step-start' }).translateY(-obj.list).step({ duration: continueTime });
 this.setData({
 animationData: animation.export()
 })
 setInterval(() => {
 animation.translateY(obj.container).step({ duration: 50, timingFunction: 'step-start' }).translateY(-obj.list).step({ duration: continueTime });
 this.setData({
 animationData: animation.export()
 })
 }, setIntervalTime)
 // setInterval(() => {
 // animation.translateY(50).step({ duration: 50, timingFunction: 'step-start' }).translateY(-250).step({ duration: 5000 });
 // this.setData({
 // animationData: animation.export()
 // })
 // }, 6000)
 },
 getHeight() {
 var obj = new Object();
 //創(chuàng)建節(jié)點(diǎn)選擇器
 var query = wx.createSelectorQuery();
 query.select('.container').boundingClientRect()
 query.select('.list').boundingClientRect()
 query.exec((res) => {
 obj.container = res[0].height; // 框的height
 obj.list = res[1].height; // list的height
 // return obj;
 this.util(obj);
 })
 }
})

20180712更新:

1.框設(shè)置為禁止滑動(dòng),即

.container {
 overflow: hidden;
}

防止手動(dòng)滑動(dòng)動(dòng)畫,從而影響setinterval的執(zhí)行。

2.設(shè)置setinterval的執(zhí)行時(shí)間>動(dòng)畫執(zhí)行時(shí)間,防止setinterval執(zhí)行卡頓。

另外一種實(shí)現(xiàn)方式:scroll-view實(shí)現(xiàn)字幕滾動(dòng)

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論