国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 課堂 > 小程序 > 正文

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

2020-03-21 16:14:30
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

微信小程序,字幕滾動(dòng)

需求:

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

解決方案:

第一種方法:

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

<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)畫(huà)來(lái)來(lái)實(shí)現(xiàn)字幕滾動(dòng)。

思路:

1.當(dāng)list底部到container框的頂部時(shí),即,內(nèi)容全部走出了框外。結(jié)束字幕滾動(dòng),重新開(kāi)始下一輪的滾動(dòng)。
2.計(jì)算container框的高度,list的高度。一個(gè)框中的內(nèi)容顯示時(shí)長(zhǎng)為 1500(暫定),通過(guò)list的高度除以container框的高度來(lái)判斷顯示時(shí)長(zhǎng)(求整數(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)該考慮的問(wèn)題是,自己如何與自己相處,比如人去樓空的時(shí)候如何照顧好自己的孤獨(dú),比如夜深人靜的時(shí)候如何跟心靈溝通。自己跟自己能和諧共處,自己跟別人就能相安無(wú)事。 </view> <view>  <text class="txt-light">19:08</text> 平和是待人處事的一種態(tài)度,也是做人酌一種美德。平和既是一種修養(yǎng),又是一種工作方法。平和的人,從不被忙碌所縈繞,閑時(shí)吃緊,忙里悠閑。待人不嚴(yán),教人勿高。寬嚴(yán)得宜,分寸得體。身心自在,能享受生活之樂(lè)趣。平和的人生,是和諧的人生,健康的人生。 </view> </view></view>

wxss

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

js

Page({  /** * 頁(yè)面的初始數(shù)據(jù) */ data: {  },  /** * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面加載 */ onLoad: function (options) {  },  /** * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面初次渲染完成 */ onReady: function () {  },  /** * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面顯示 */ 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)畫(huà)時(shí)長(zhǎng)  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)畫(huà),從而影響setinterval的執(zhí)行。

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 南和县| 明水县| 柏乡县| 临清市| 东源县| 九龙县| 云龙县| 巴彦淖尔市| 温州市| 枣阳市| 中宁县| 广宗县| 石屏县| 甘谷县| 荣成市| 江华| 澄城县| 松滋市| 余江县| 揭西县| 巴里| 东至县| 灵武市| 永川市| 定结县| 正安县| 普格县| 泗水县| 香河县| 阿克陶县| 南汇区| 芒康县| 贵阳市| 东乌| 永春县| 宜宾县| 礼泉县| 南昌县| 铁岭市| 乐东| 淮安市|