微信小程序頁面縮放式側滑效果的實現(xiàn)代碼
先給大家展示下效果圖,大家感覺不錯,請參考實現(xiàn)代碼:

實現(xiàn)原理:點擊按鈕,往需要動畫的div中添加或移除擁有動畫效果的class。
由于微信小程序中不能操作page這個根節(jié)點,所以,只有用一個div(view)來模仿page根節(jié)點。
1.結構
<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>
上面的是最主要的結構,其它的內(nèi)容就不貼了。
(1) isFix是切換動畫名的狀態(tài)
(2) r-box設置了bindtap點擊事件之后,r-list也設置了一個不冒泡的catchtap事件,是為了實現(xiàn)點擊r-box的空白處時,不冒泡的效果。
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),就是模擬整個page頁面,所以寬高需要設為100%。
(2) r-box是右邊側滑的div(view)
(3) fixHide,fixShow這是側滑欄的動畫效果。
(4) pageHide,pageShow這是整個頁面的動畫效果
(5) 由于transform只能出現(xiàn)一次,所以當有兩個即以上的動畫效果時,只寫在一個transform里,然后把不同的動畫效果分開就行。
(6) 過渡效果的速度曲線我使用的是ease,如果用linear,在手機上會感覺很卡頓。
3.js
Page({
data:{
isFix:false,//右側列表是否顯示
},
// 右側列表顯示按鈕
pageBtn:function(){
this.setData({
isFix:true
})
},
//右側列表空白點擊
fixHide:function(){
this.setData({
isFix: false
})
},
//右側列表防冒泡,必須有,雖然沒內(nèi)容
fixStopBu: function () {},
//右側列表關閉按鈕
fixClose:function(){
this.setData({
isFix:false
})
},
})
實現(xiàn)的過程大致就是這樣。還是挺簡單的。不知道用小程序的動畫api做起來會不會簡單一些或者更順暢一點,這個就看自己勤不勤了。
總結
以上所述是小編給大家介紹的微信小程序頁面縮放式側滑效果的實現(xiàn)代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

