微信小程序頁面縮放式側(cè)滑效果的實(shí)現(xiàn)代碼
先給大家展示下效果圖,大家感覺不錯(cuò),請參考實(shí)現(xiàn)代碼:
實(shí)現(xiàn)原理:點(diǎn)擊按鈕,往需要?jiǎng)赢嫷膁iv中添加或移除擁有動(dòng)畫效果的class。
由于微信小程序中不能操作page這個(gè)根節(jié)點(diǎn),所以,只有用一個(gè)div(view)
來模仿page根節(jié)點(diǎn)。
1.結(jié)構(gòu)
<view class='page {{isFix?"pageShow":"pageHide"}}' > <view class='header'> <view class='h-toggle iconfont icon-list' bindtap='pageBtn'></view> </view> </view> <view class='r-box {{isFix?"fixShow":"fixHide"}}' bindtap='fixHide'> <view class='r-list' catchtap='fixStopBu'> <view class='rl-close' catchtap='fixClose'> <text class='iconfont icon-close'></text> </view> </view> </view>
上面的是最主要的結(jié)構(gòu),其它的內(nèi)容就不貼了。
(1) isFix是切換動(dòng)畫名的狀態(tài)
(2) r-box設(shè)置了bindtap點(diǎn)擊事件之后,r-list也設(shè)置了一個(gè)不冒泡的catchtap事件,是為了實(shí)現(xiàn)點(diǎn)擊r-box的空白處時(shí),不冒泡的效果。
2.樣式
page { height: 100%; width: 100%; } .page { width: 100%; height: 100%; box-shadow: 0 0 10px rgba(26,26,26,.1); } .r-box { position: fixed; top: 0; right: 0; width: 100%; height: 100%; } .r-box .r-list { float: right; width: 66%; height: 100%; background: white; } .fixHide { transition: all .3s ease; transform: translateX(100%); } .fixShow { transition: all .3s ease; transform: translateX(0%); } .pageHide { transition: all .3s ease; transform: translateX(0) scaleY(1); } .pageShow { transition: all .3s ease; transform: translateX(-70%) scaleY(0.9); }
這些是最主要的樣式:
(1) class為page的div(view),就是模擬整個(gè)page頁面,所以寬高需要設(shè)為100%。
(2) r-box是右邊側(cè)滑的div(view)
(3) fixHide,fixShow這是側(cè)滑欄的動(dòng)畫效果。
(4) pageHide,pageShow這是整個(gè)頁面的動(dòng)畫效果
(5) 由于transform只能出現(xiàn)一次,所以當(dāng)有兩個(gè)即以上的動(dòng)畫效果時(shí),只寫在一個(gè)transform里,然后把不同的動(dòng)畫效果分開就行。
(6) 過渡效果的速度曲線我使用的是ease,如果用linear,在手機(jī)上會(huì)感覺很卡頓。
3.js
Page({ data:{ isFix:false,//右側(cè)列表是否顯示 }, // 右側(cè)列表顯示按鈕 pageBtn:function(){ this.setData({ isFix:true }) }, //右側(cè)列表空白點(diǎn)擊 fixHide:function(){ this.setData({ isFix: false }) }, //右側(cè)列表防冒泡,必須有,雖然沒內(nèi)容 fixStopBu: function () {}, //右側(cè)列表關(guān)閉按鈕 fixClose:function(){ this.setData({ isFix:false }) }, })
實(shí)現(xiàn)的過程大致就是這樣。還是挺簡單的。不知道用小程序的動(dòng)畫api做起來會(huì)不會(huì)簡單一些或者更順暢一點(diǎn),這個(gè)就看自己勤不勤了。
總結(jié)
以上所述是小編給大家介紹的微信小程序頁面縮放式側(cè)滑效果的實(shí)現(xiàn)代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
使用jscript實(shí)現(xiàn)二進(jìn)制讀寫腳本代碼
Reading And Writing Binary Files Using JScript正如我剛才推什么我能做的JScript中,我想出了對問題的二進(jìn)制文件。以下級的解決,這為小到中等大小的文件。我的部分包括這個(gè)職位在這里,因?yàn)槲壹磳⒏吨T表決,在一個(gè)職位約發(fā)送帶有附件的電郵通過JScript和它會(huì)使用這個(gè)二進(jìn)制文件碼來讀取,在二進(jìn)制附件檔案。2008-06-06基于JavaScript實(shí)現(xiàn)購物車功能
這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)購物車功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02webpack?打包后圖片加載報(bào)錯(cuò)的解決辦法
使用webpack打包后,圖片沒有加載出來,頁面空白,報(bào)錯(cuò)圖片引用的路徑不對,本文給大家介紹webpack?打包后圖片加載報(bào)錯(cuò)的解決辦法,感興趣的朋友一起看看吧2024-03-03