在微信小程序中如何制作貓眼電影?

有用戶喜歡看電影有喜歡玩微信小程序,今天小編就給大家?guī)?lái)了在微信小程序中制作貓眼電影的詳細(xì)步驟,感興趣的小伙伴就趕緊和小編一起來(lái)看看吧。
正文
廢話不多說(shuō),先上效果圖
效果圖
本demo完成共耗費(fèi)近兩周,也是在空余時(shí)間去寫(xiě)的,因?yàn)樯婕暗叫轮R(shí)JS、HTML和CSS3,所以也是邊學(xué)習(xí)邊寫(xiě),代碼編寫(xiě)上有什么不當(dāng)處,還需小伙伴在評(píng)論處指明,幫助作者更上一層樓!
(注:本文章已默認(rèn)各位小伙伴已經(jīng)熟悉微信小程序的目錄結(jié)構(gòu)以及每個(gè)文件所代表的的含義和小程序API的使用,所以文中不會(huì)詳細(xì)說(shuō)明,結(jié)尾會(huì)直接給出完整代碼)
貓眼電影api:點(diǎn)擊此處
一、目錄結(jié)構(gòu)
目錄結(jié)構(gòu)
采用的開(kāi)發(fā)工具是Egret Wing(點(diǎn)擊進(jìn)入官網(wǎng)下載),主要目錄說(shuō)明:
從目錄可知整體結(jié)構(gòu)簡(jiǎn)單,主要就是三個(gè)界面:首頁(yè)homepage、電影詳情頁(yè)moviedetail、影院列表頁(yè)cinema。

egret wing(Egret項(xiàng)目集成開(kāi)發(fā)工具) v4.1.6 官方中文安裝版
- 類(lèi)型:編程工具
- 大?。?/span>56.9MB
- 語(yǔ)言:簡(jiǎn)體中文
- 時(shí)間:2019-06-17
二、首頁(yè)
首頁(yè)
tab代碼,打開(kāi)app.json如圖:
pages和tabBar
這里我想說(shuō)下,微信小程序自帶對(duì)tabBar選擇效果作者還是挺喜歡的(如果在Android上還要給每個(gè)tab寫(xiě)個(gè)selector選擇器的XML文件)由于這段沒(méi)什么技術(shù)難點(diǎn),所以就不多說(shuō)了。
接下來(lái)進(jìn)入首頁(yè)homepage,一個(gè)界面的文件結(jié)構(gòu)離不開(kāi)三個(gè)文件:xxx.js、xxx.wxml、xxx.wxss
先來(lái)看看布局代碼:
在這里作者承認(rèn)當(dāng)初寫(xiě)的時(shí)候偷了下懶,有些標(biāo)簽屬性我直接用style寫(xiě)了,但真正開(kāi)發(fā)時(shí),最好把每個(gè)標(biāo)簽的style寫(xiě)在.wxss文件里,通過(guò)自定義的class名稱(chēng)(或者id),相同布局的地方可以直接引用同一個(gè)class就可以了,不然會(huì)像作者這樣有些屬性重復(fù)寫(xiě)了幾次(手動(dòng)尷尬)。
.js代碼往下看:
homepage.js
電影列表的信息本放到了定義的infos[]數(shù)組中,小程序也不存在json解析,在wx.request請(qǐng)求下得到的res取相應(yīng)的值res.data.data.movie,直接在homepage.html標(biāo)簽中用wx:for=“{{infos}}”遍歷,元素默認(rèn)為item,取值的時(shí)候用“item.值的名稱(chēng)”就可以取到數(shù)據(jù)。
這里有個(gè)小地方需要說(shuō)明下,當(dāng)時(shí)為了解決也是花了點(diǎn)時(shí)間:在json數(shù)據(jù)里有個(gè)參數(shù)名稱(chēng)為“3d”,而且這個(gè)標(biāo)簽不是所有電影都有的,所以定義了threeD:true這個(gè)變量,為了能在.wxml中取到值,就可想而知的直接寫(xiě)成了wx:if="{{item.3d}}",結(jié)果就報(bào)錯(cuò)了:
錯(cuò)誤信息
問(wèn)題就出在這個(gè)3d上,后來(lái)查資料才得知改寫(xiě)成wx:if="{{item['3d']}}"就立馬解決啦,沒(méi)什么原因,約定俗成,只是作者這只前端小白不知道而已(莫見(jiàn)怪......手動(dòng)微笑)
為了讓大家更清楚了解電影列表快的布局,作者畫(huà)了個(gè)草圖(真的很草......):
電影列表布局
發(fā)個(gè)牢騷:第一次寫(xiě)布局時(shí)心里就想,還是Android布局寫(xiě)起來(lái)方便,剛開(kāi)始接觸CSS3時(shí)覺(jué)得好麻煩,這個(gè)class要給個(gè)style,那個(gè)也要給個(gè),而且有時(shí)要設(shè)置id,在同一個(gè)class下不同的id也要在wxss給個(gè)style,現(xiàn)在適應(yīng)后感覺(jué)還算良好了。因?yàn)椴季謪?shù)沒(méi)難點(diǎn),所以這里就不貼代碼了。
二、詳情頁(yè)
電影詳情頁(yè)
這里不貼全部代碼了,只用關(guān)鍵代碼說(shuō)明下當(dāng)時(shí)遇到的幾個(gè)問(wèn)題:
①高斯模糊
高斯模糊
這里共有兩個(gè),一個(gè)class=“blur”(高斯模糊背景),一個(gè)class=“info”(電影信息)。剛開(kāi)始是本著Android的布局設(shè)計(jì)思維去寫(xiě)這個(gè)布局,這不就是個(gè)RelativeLayout嗎,寫(xiě)著寫(xiě)著到最后效果出來(lái),發(fā)現(xiàn)作者還是太天真,信息那一欄我莫名其妙寫(xiě)到高斯模糊的下面了,也就是寫(xiě)成了LinearLayout且orientation=vertical,當(dāng)時(shí)就笑自己:你現(xiàn)在又不是在寫(xiě)Android,醒醒!孩子~主要原因是CSS3的知識(shí)不夠,所以我就老老實(shí)實(shí)去學(xué)習(xí)了一番,下面便是代碼:
高斯模糊和絕對(duì)布局
filter:blur(30px)和-webkit-filter:blur(30px)形成了高斯模糊的效果(內(nèi)心OS:如果是Android的話又是一大堆代碼)。info中的position:relative、z-index:1,blur中的position:absolute、z-index:0相結(jié)合就能展示出上面的效果,關(guān)鍵在于info中的z-index要大于blur的,表示顯示在blur的上方,還要保證info是相對(duì)的,blur是絕對(duì)的,感興趣并且沒(méi)接觸過(guò)CSS3的盆友可以下載代碼自己去試試改改看看效果,不要像作者一樣以為自己會(huì)反而是自作聰明。
②點(diǎn)擊顯示全部
點(diǎn)擊圖標(biāo)顯示全部
這里本猿又要贊揚(yáng)一下三元運(yùn)算符了:
影片簡(jiǎn)介
.js文件中在data里設(shè)置三個(gè)變量
參數(shù)
showall方法
showall方法
hideText布爾值用來(lái)判斷當(dāng)前是否為隱藏狀態(tài),用style="{{hideText?'-webkit-line-clamp:3':' '}}"設(shè)置顯示行數(shù),當(dāng)hideText為true是顯示3行,否則不給值,即默認(rèn)。定義hideClass來(lái)控制箭頭的指向,‘down’表示當(dāng)前簡(jiǎn)介為隱藏,‘up’表示顯示了全部,對(duì)于圖標(biāo)旋轉(zhuǎn)這里只需給個(gè)旋轉(zhuǎn)屬性就行
箭頭180°旋轉(zhuǎn)
好了,在詳情頁(yè)中花的時(shí)間比較多的就在這兩處了,還是那句老話:不明白的多去查找些資料。
評(píng)論部分就是簡(jiǎn)單的列表,這里不再詳細(xì)說(shuō)明。
三、電影院列表
影院列表
這里只是簡(jiǎn)單的列出信息就行了,在布局上沒(méi)難點(diǎn),不過(guò)代碼可以優(yōu)化下,為了省事所以就沒(méi)去寫(xiě)了,就簡(jiǎn)單為了實(shí)現(xiàn)下效果。
今天的內(nèi)容就和大家介紹到這里了,想要了解更多精彩內(nèi)容請(qǐng)繼續(xù)關(guān)注腳本之家!
相關(guān)文章
- 微信小程序附近門(mén)店怎么添加和使用?微信升級(jí)小程序服務(wù)能力,用戶可在微信內(nèi)便捷地獲取“附近的店”所屬的小程序,該怎么添加附近門(mén)店呢?下面我們就來(lái)看看詳細(xì)的教程,需2017-04-13
- 據(jù)了解支付寶小程序馬上就喲啊上線了,將會(huì)和支付寶生活圈綁定在一起,那么支付寶小程序怎么和支付寶綁定呢?綁定有什么用呢?一起來(lái)看看2017-04-13
- 微信小程序怎么添加摩拜單車(chē)?微信中想要添加摩拜單車(chē)小程序。有30天免費(fèi)騎的優(yōu)惠,該怎么獲得這個(gè)優(yōu)惠呢?下面我們就來(lái)看看詳細(xì)的教程,需要的朋友可以參考下2017-04-10
- 微信小程序怎么制作圖文祝福語(yǔ)?微信小程序想要制作圖文祝福語(yǔ),該怎么制作呢?下面我們就來(lái)看看圖文祝??ㄆ闹谱鞣椒?,需要的朋友可以參考下2017-01-22
- 微信公眾號(hào)中怎么使用小程序健身?微信公眾號(hào)中有很多小程序,該怎么使用小程序健身呢?下面我們就來(lái)看看微信公眾號(hào)小程序健身的方法,需要的朋友可以參考下2017-01-22
- 微信小程序怎么添加到桌面?微信小程序中有喜歡使用的應(yīng)用,想要添加到桌面,該怎么添加呢?下面我們就來(lái)看看將微信小程序添加到桌面的教程,需要的朋友可以參考下2017-01-17
- 微信小程序已于1月9日正式開(kāi)放,緊隨微信的步伐,支付寶也要推出小程序了?那么支付寶小程序怎么樣呢?支付寶小程序入口在哪?一起來(lái)了解看看吧2017-01-12
- 目前,微信小程序已于1月9日正式上線,緊接著,網(wǎng)上爆出支付寶也要做小程序,那么支付寶小程序怎么樣?支付寶小程序怎么用呢?下面小編給大家介紹,一起來(lái)看吧2017-01-11
微信小程序好用嗎 微信小程序使用專(zhuān)業(yè)評(píng)測(cè)
微信小程序好用嗎 微信小程序正式上線以來(lái)受到很多人的喜歡,但是很多朋友好奇這個(gè)好用嗎?下文小編就為大家?guī)?lái)微信小程序使用專(zhuān)業(yè)評(píng)測(cè),一起看看吧2017-01-10微信小程序有哪九大熱點(diǎn) 微信小程序相關(guān)問(wèn)題介紹
微信小程序剛剛上線就受到很多人的喜歡,目前有125個(gè)小程序出爐,但是很多人面對(duì)小程序的時(shí)候還是有很多的問(wèn)題,因此就讓小編給大家解答一下吧2017-01-10