版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】微信小程序中如何實(shí)現(xiàn)彈幕效果
在下給大家分享一下微信小程序中如何實(shí)現(xiàn)彈幕效果,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!1、微信小程序彈幕的實(shí)現(xiàn)(無(wú)后臺(tái))小程序剛剛出來(lái),現(xiàn)在網(wǎng)上的demo是多,但是要找到一個(gè)自己需要的卻不容易。今天跟大家分享自己寫的一個(gè)彈幕功能。效果圖:我的思路是這樣的,先用<switch>標(biāo)簽確定是否打開(kāi)彈幕,若打開(kāi)彈幕則出現(xiàn)彈幕文本框和發(fā)射按鈕,還有彈幕遮罩層。先貼wxml和wxss代碼。wxml代碼如下:<!--
pages/index/index.wxml
-->
<swiper
indicator-dots="pw_indicatorDots"
autoplay="pw_autoplay"
interval="pw_interval"
duration="pw_duration">
<block
wx:for="pw_imgUrls"
wx:key="unique">
<swiper-item>
<image
src="pw_item"
class="slide-image"/>
</swiper-item>
</block>
</swiper>
<!--彈幕開(kāi)關(guān)-->
<view
class="barrage-Switch"
style="color:pw_barrageTextColor;">
<switch
id="switch_"
bindchange="barrageSwitch"/>
<text>彈幕</text>
</view>
<!--彈幕輸入框-->
<view
class="barrage-inputText"
style="display:pw_barrage_inputText">
<view
class="barrage-input">
<input
bindblur="bind_shoot"
value="pw_bind_shootValue"/>
</view>
<view
class="barrage-shoot">
<button
class="shoot"
size="mini"
bindtap="shoot">發(fā)射</button>
</view>
</view>
<!--彈幕上單文字-->
<view
class="barrage-fly"
style="display:pw_barragefly_display">
<block
wx:for="pw_barrage_style"
wx:key="unique">
<text
class="barrage-textFly"
style="color:pw_item.barrage_shoottextColor;left:pw_item.barrage_phoneWidthpx;top:pw_item.barrageText_heightpx;">pw_item.barrage_shootText</text>
</block>
</view>wxss代碼如下:/*
pages/index/index.wxss
*/
.slide-image{
width:
100%;
}
/*
彈幕選擇按鈕的操作*/
.barrage-Switch{
position:
absolute;
bottom:
10px;
right:
10px;
z-index:
2;
}
/*
彈幕輸入框的操作*/
.barrage-inputText{
position:
absolute;
display:
flex;
background-color:
#BFBFBF;
width:
100%;
height:
40px;
flex-direction:
row;
nav-index:
2;
justify-content:
center;
align-items:
center;
bottom:
10%;
}
.barrage-input{
background-color:
greenyellow;
width:
60%;
height:
30px;
}
.barrage-shoot{
margin-left:
10px;
width:
25%;
height:
30px;
}
.shoot{
width:
100%;
color:
black;
}
/*彈幕飛飛飛*/
.barrage-fly{
z-index:
3;
height:
80%;
width:
100%;
position:
absolute;
top:
0;
}
.barrage-textFly{
position:
absolute;
}這樣基本的樣式就都實(shí)現(xiàn)了。接下來(lái)要對(duì)彈幕上的字進(jìn)行處理。文字是從右往左移動(dòng),文字出現(xiàn)的位置top是隨機(jī),left則是取屏幕的寬度。移動(dòng)的時(shí)候是用定時(shí)器進(jìn)行處理。還有就是字體的顏色是隨機(jī)出現(xiàn)的。這些功能都是利用js處理的。js的代碼如下:var
barrage_style_arr
=
[];
var
barrage_style_obj
={};
var
phoneWidth
=
0;
var
timers
=
[];
var
timer
;
Page({
data:
{
imgUrls:
[
'/images/20150928/tooopen_sy_143912755726.jpg',
'/images/20160818/tooopen_sy_175866434296.jpg',
'/images/20160818/tooopen_sy_175833047715.jpg'
],
indicatorDots:
true,
autoplay:
true,
interval:
3000,
duration:
500,
barrageTextColor:"#D3D3D3",
barrage_inputText:"none",
barrage_shoottextColor:"black",
bind_shootValue:"",
barrage_style:[],
barragefly_display:"none",
},
//
生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面加載
onLoad:function(options){
var
that
=
this;
//獲取屏幕的寬度
wx.getSystemInfo({
success:
function(res)
{
that.setData({
barrage_phoneWidth:res.windowWidth-100,
})
}
})
phoneWidth
=
that.data.barrage_phoneWidth;
console.log(phoneWidth);
},
//是否打開(kāi)彈幕...
barrageSwitch:
function(e){
console.log(e);
//先判斷沒(méi)有打開(kāi)
if(!e.detail.value){
//清空彈幕
barrage_style_arr
=
[];
//設(shè)置data的值
this.setData({
barrageTextColor:"#D3D3D3",
barrage_inputText:"none",
barragefly_display:"none",
barrage_style:barrage_style_arr,
});
//清除定時(shí)器
clearInterval(timer);
}else{
this.setData({
barrageTextColor:"#04BE02",
barrage_inputText:"flex",
barragefly_display:"block",
});
//打開(kāi)定時(shí)器
timer=
setInterval(this.barrageText_move,800)
}
},
//發(fā)射按鈕
shoot:
function(e){
//字體顏色隨機(jī)
var
textColor
=
"rgb("+parseInt(Math.random()*256)+","+parseInt(Math.random()*256)+","+parseInt(Math.random()*256)+")";
//
//設(shè)置彈幕字體的水平位置樣式
//
var
textWidth
=
-(this.data.bind_shootValue.length*0);
//設(shè)置彈幕字體的垂直位置樣式
var
barrageText_height
=
(Math.random())*266;
barrage_style_obj
=
{
//
textWidth:textWidth,
barrageText_height:barrageText_height,
barrage_shootText:this.data.bind_shootValue,
barrage_shoottextColor
:
textColor,
barrage_phoneWidth:phoneWidth
};
barrage_style_arr.push(barrage_style_obj);
this.setData({
barrage_style:barrage_style_arr,
//發(fā)送彈幕
bind_shootValue:""
//清空輸入框
})
//定時(shí)器
讓彈幕動(dòng)起來(lái)
//
this.timer=
setInterval(this.barrageText_move,800);
},
//定時(shí)器
讓彈幕動(dòng)起來(lái)
barrageText_move:
function(){
var
timerNum
=
barrage_style_arr.length;
var
textMove
;
for(var
i=0;i<timerNum;i++){
textMove
=
barrage_style_arr因?yàn)閯倓偨佑|小程序,所以對(duì)一些語(yǔ)句的使用都不是很了解。所以遇到了一些問(wèn)題:1、在js中獲取wxml的控件的信息。js:
barrageSwitch:
function(e){
console.log(e);
}wxml:<switch
id="switch_"
bindchange="barrageSwitch"/>結(jié)果:返回了一個(gè)objec.在控制臺(tái)返回的類型好像都是json格式的數(shù)據(jù)。
Object
{type:
"change",
timeStamp:
2766,
target:
Object,
currentTarget:
Object,
detail:
Object}2、在實(shí)現(xiàn)彈幕的時(shí)候
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度膩?zhàn)赢a(chǎn)品銷售與售后服務(wù)合同2篇
- 二零二五年度環(huán)保技術(shù)開(kāi)發(fā)合伙投資合同
- 2024版學(xué)校污水處理設(shè)施清掏協(xié)議版B版
- 忻州師范學(xué)院《建筑工程評(píng)估基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年水利工程勞務(wù)派遣與設(shè)備租賃合同3篇
- 西安工商學(xué)院《圖像處理》2023-2024學(xué)年第一學(xué)期期末試卷
- 武漢警官職業(yè)學(xué)院《低頻模擬電路》2023-2024學(xué)年第一學(xué)期期末試卷
- 文山學(xué)院《房屋建筑學(xué)課程設(shè)討》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五年生物制藥技術(shù)轉(zhuǎn)讓及合作開(kāi)發(fā)協(xié)議2篇
- 二零二五年度廠長(zhǎng)任期企業(yè)戰(zhàn)略規(guī)劃與執(zhí)行合同2篇
- 2024年滄州經(jīng)濟(jì)開(kāi)發(fā)區(qū)招聘社區(qū)工作者筆試真題
- 中外美術(shù)史試題及答案
- 2025年安徽省銅陵市公安局交警支隊(duì)招聘交通輔警14人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 公共政策分析 課件 第8章政策評(píng)估;第9章政策監(jiān)控
- 人教版八年級(jí)上學(xué)期物理期末復(fù)習(xí)(壓軸60題40大考點(diǎn))
- 企業(yè)環(huán)保知識(shí)培訓(xùn)課件
- 2024年度管理評(píng)審報(bào)告
- 暨南大學(xué)《微觀經(jīng)濟(jì)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 醫(yī)藥銷售合規(guī)培訓(xùn)
- DB51-T 5038-2018 四川省地面工程施工工藝標(biāo)準(zhǔn)
- 三年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)附答案
評(píng)論
0/150
提交評(píng)論