微信小程式實現抖音播放效果的例項程式碼
阿新 • • 發佈:2020-04-14
最近專案要做一個類似於抖音的一個視訊播放 需要小程式完成
在再次確定了需要這個需求的情況下就開始了(其實因為不是說這個功能不好做主要是但心做出來肯定不流暢 卡頓什麼的 優化不好優化)
然後就開始啦
思路使用微信的 swiper 完成豎向滑動 然後分頁載入首先先載入一次載入10個當滑動到第7個的時候載入下一頁 (要處理自動播放的問題和載入多個有多個同時播放的問題)
效果圖
程式碼
<swiper class="swiper" vertical='true' easing-function='default' bindchange='bindchange'> <block wx:for="{{weishipinglist}}" wx:for-item="key" wx:key="*this"> <swiper-item> <view class="video-wrap"> <video wx:if="{{index==hkindex}}" class="video" autoplay="{{true}}" lopp='{{true}}' src="{{key.videoid}}" enable-play-gesture='{{true}}' show-fullscreen-btn='{{false}}' controls='{{false}}' vslide-gesture-in-fullscreen='{{false}}' show-play-btn='{{false}}' enable-progress-gesture='{{false}}' show-mute-btn='{{false}}'></video> <button class="buy" bindtap="click">{{index}}</button> </view> </swiper-item> </block> </swiper>
data: { weishipinglist: [],//視訊資料 hkindex: 0,//滑塊index },//動態更新當前滑塊下標 bindchange(e) { this.setData({ hkindex: e.detail.current }) if (e.detail.current%10 == 7) { this.chaxunzhi(); //此處是表示在快要載入完了需在分頁請求載入 } },
//css程式碼可能有多餘的 我就不挑了 引入時自己按需引入吧 page { width: 100%; height: 100%; } .video-wrap { width: 100%; height: 100%; position: relative; /* border: 1px dashed red; */ } .video-wrap video { width: 100%; height: 100%; position: absolute; top: 0px; left: 0; z-index: 1; } .video-wrap .buy { width: 100rpx; height: 100rpx; line-height: 100rpx; border-radius: 50%; position: absolute; z-index: 100; bottom: 100rpx; left: 50rpx; font-size: 11pt; text-align: center; padding: 0px; } .swiper { width: 100%; height: 100%; } .tentbiaot { width: 400rpx; font-size: 30rpx; color: #fff; z-index: 99; white-space: normal; line-height: 40rpx; margin-top: 20rpx; } .diwen { width: 400rpx; color: #fff; z-index: 99; display: flex; align-items: center; } .toixaign { width: 50rpx; height: 50rpx; border-radius: 50rpx; margin-right: 10rpx; } .teiename { font-size: 34rpx; margin-right: 10rpx; } .diwe { display: flex; position: fixed; bottom: 100rpx; flex-direction: column; z-index: 99; left: 40rpx; } .dianzaidijila { width: 100rpx; position: fixed; right: 30rpx; bottom: 80rpx; display: flex; flex-direction: column; align-items: center; justify-content: center; z-index: 99; } .tuaobiao { display: flex; align-items: center; flex-direction: column; justify-content: center; margin-bottom: 30rpx; } .tobimg{ width: 60rpx; height: 50rpx; } .tobimglw{ width: 60rpx; height: 60rpx; margin-bottom: 20rpx; } .zitiet{ color: #fff; font-size: 26rpx; margin-top: 6rpx; } .zhaunfanan { width: 60rpx; height: 50rpx; padding: 0rpx; border: none !important; line-height: 0rpx; } .zhaunfananas { width: 60rpx; height: 50rpx; }
完了需要注意的就是一個分頁載入 我設定的是7因為我們資料是一頁10條 會在第7條載入第二頁資料
wx:if="{{index==hkindex}}" 這個起到的是控制載入要不會多個同時播放沒刷到的也會播放 現在只會播放當前頁面視訊
總結
到此這篇關於微信小程式實現抖音播放效果的例項程式碼的文章就介紹到這了,更多相關微信小程式抖音播放內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!