微信小程序?qū)崿F(xiàn)抖音播放效果的實(shí)例代碼
最近項(xiàng)目要做一個(gè)類似于抖音的一個(gè)視頻播放 需要小程序完成

在再次確定了需要這個(gè)需求的情況下就開始了(其實(shí)因?yàn)椴皇钦f這個(gè)功能不好做主要是但心做出來肯定不流暢 卡頓什么的 優(yōu)化不好優(yōu)化)
然后就開始啦
思路使用微信的 swiper 完成豎向滑動(dòng) 然后分頁加載首先先加載一次加載10個(gè)當(dāng)滑動(dòng)到第7個(gè)的時(shí)候加載下一頁 (要處理自動(dòng)播放的問題和加載多個(gè)有多個(gè)同時(shí)播放的問題)
效果圖

代碼
<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: [],//視頻數(shù)據(jù)
hkindex: 0,//滑塊index
},
//動(dòng)態(tài)更新當(dāng)前滑塊下標(biāo)
bindchange(e) {
this.setData({
hkindex: e.detail.current
})
if (e.detail.current%10 == 7) {
this.chaxunzhi(); //此處是表示在快要加載完了需在分頁請求加載
}
},
//css代碼可能有多余的 我就不挑了 引入時(shí)自己按需引入吧
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;
}
完了需要注意的就是一個(gè)分頁加載 我設(shè)置的是7因?yàn)槲覀償?shù)據(jù)是一頁10條 會在第7條加載第二頁數(shù)據(jù)
wx:if="{{index==hkindex}}" 這個(gè)起到的是控制加載要不會多個(gè)同時(shí)播放沒刷到的也會播放 現(xiàn)在只會播放當(dāng)前頁面視頻
總結(jié)
到此這篇關(guān)于微信小程序?qū)崿F(xiàn)抖音播放效果的實(shí)例代碼的文章就介紹到這了,更多相關(guān)微信小程序抖音播放內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript搜索自動(dòng)提示功能的實(shí)現(xiàn)
使用 jQuery(Ajax)/PHP/MySQL實(shí)現(xiàn)自動(dòng)完成功我覺得我有必要寫這個(gè)教程,因?yàn)樵?jīng)見到的大部分關(guān)于自動(dòng)完成的應(yīng)用程序都只是給你一個(gè)程序源碼包,然后告訴你怎么使用,而不是告訴你它是如何工作的以及為什么這樣做。2008-06-06
原生js實(shí)現(xiàn)隨機(jī)點(diǎn)名
這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)隨機(jī)點(diǎn)名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07
微信小程序如何保證每個(gè)頁面都已經(jīng)登陸詳解
前段時(shí)間發(fā)布了一個(gè)微信小程序的簡單登錄,但遇到一個(gè)問題,怎么確保用戶每個(gè)頁面都已經(jīng)登陸了呢,這篇文章主要給大家介紹了關(guān)于微信小程序如何保證每個(gè)頁面都已經(jīng)登陸的相關(guān)資料,需要的朋友可以參考下2021-11-11
小程序websocket心跳庫(websocket-heartbeat-miniprogram)
這篇文章主要介紹了小程序websocket心跳庫(websocket-heartbeat-miniprogram),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02
Bootstrap實(shí)現(xiàn)基于carousel.js框架的輪播圖效果
這篇文章主要為大家詳細(xì)介紹了Bootstrap實(shí)現(xiàn)基于carousel.js框架的輪播圖效果,無過渡動(dòng)畫,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
js實(shí)現(xiàn)權(quán)限樹的更新權(quán)限時(shí)的全選全消功能
上一篇發(fā)了添加權(quán)限時(shí)的權(quán)限樹JS源碼,下面把更新時(shí)的也發(fā)給大家借鑒一下,因?yàn)楦聲r(shí)候牽扯到判斷已有權(quán)限等,所以,還要麻煩一些。2009-02-02
使用layui實(shí)現(xiàn)的左側(cè)菜單欄以及動(dòng)態(tài)操作tab項(xiàng)方法
今天小編就為大家分享一篇使用layui實(shí)現(xiàn)的左側(cè)菜單欄以及動(dòng)態(tài)操作tab項(xiàng)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09
利用D3.js實(shí)現(xiàn)最簡單的柱狀圖示例代碼
D3.js是一個(gè)基于數(shù)據(jù)操作文檔JavaScript庫。D3幫助你給數(shù)據(jù)帶來活力通過使用HTML、SVG和CSS。D3重視Web標(biāo)準(zhǔn)為你提供現(xiàn)代瀏覽器的全部功能,而不是給你一個(gè)專有的框架。最近在學(xué)習(xí)D3.js,這個(gè)例子是通過d3.js畫一個(gè)簡單的柱狀圖。下面來一起看看吧。2016-12-12

