国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

微信小程序開發(fā)之『側(cè)邊欄滑動』特效

2024-04-27 15:18:39
字體:
供稿:網(wǎng)友

側(cè)邊欄滑動是很常見的功能,但是小程序出來不久,很多特效還沒有成熟案例,只能原生重寫,所以今天為大家?guī)?個(gè)漂亮的側(cè)邊欄特效~~ 側(cè)邊欄特效一 先看效果: 這里寫圖片描述

Wxml

<view class="page"> <view class="page-bottom"> <view class="page-content"> <view class="wc"> <text>第一個(gè)item1</text> </view> <view class="wc"> <text>第二個(gè)item2</text> </view> <view class="wc"> <text>第三個(gè)item3</text> </view> <view class="wc"> <text>第四個(gè)item4</text> </view> </view> </view> <view class="page-top {{open ? 'c-state1' : ''}}"> <image bindtap="tap_ch" src="../../images/btn.png"></image> </view> </view> 搭建上下兩層界面寫一段CSS3的右移動畫樣式 .c-state1

wxss:

.c-state1{ transform: rotate(0deg) scale(1) translate(75%,0%); -webkit-transform: rotate(0deg) scale(1) translate(75%,0%); } 點(diǎn)擊按鈕,添加樣式.c-state1再點(diǎn)擊,移除樣式.c-state1

側(cè)邊欄特效二 先看效果: 這里寫圖片描述 滑動且屏幕縮小

wxss:

.c-state2{ transform: rotate(0deg) scale(.8) translate(75%,0%); -webkit-transform: rotate(0deg) scale(.8) translate(75%,0%); } wxml代碼和特效一相同.c-state2與.c-state1唯一不同在于scale值

js代碼:

Page({ data:{ open : false }, tap_ch: function(e){ if(this.data.open){ this.setData({ open : false }); }else{ this.setData({ open : true }); } } })

代碼很簡單,就是通過open值控制view對類的選取

側(cè)邊欄特效三 先看效果: 這里寫圖片描述

與特效二不同在于,不僅可以點(diǎn)擊按鈕觸發(fā)側(cè)滑,還可以拖動主界面觸發(fā)側(cè)滑特效

js代碼:

tap_start:function(e){ // touchstart事件 this.data.mark = this.data.newmark = e.touches[0].pageX; }, tap_drag: function(e){ // touchmove事件 /* * 手指從左向右移動 * @newmark是指移動的最新點(diǎn)的x軸坐標(biāo) , @mark是指原點(diǎn)x軸坐標(biāo) */ this.data.newmark = e.touches[0].pageX; if(this.data.mark < this.data.newmark){ this.istoright = true; } /* * 手指從右向左移動 * @newmark是指移動的最新點(diǎn)的x軸坐標(biāo) , @mark是指原點(diǎn)x軸坐標(biāo) */ if(this.data.mark > this.data.newmark){ this.istoright = false; } this.data.mark = this.data.newmark; }, tap_end: function(e){ // touchend事件 this.data.mark = 0; this.data.newmark = 0; if(this.istoright){ this.setData({ open : true }); }else{ this.setData({ open : false }); } } tap_drag中判斷手勢是從左到右,或者從右向左tap_end表示手勢抬起,如果是從左到右,則觸發(fā)從左到右的滑動tap_end表示手勢抬起,如果是從右到左,則觸發(fā)從右到左的滑動

側(cè)邊欄特效四 先看效果: 這里寫圖片描述

此特效會隨著手勢滑動而滑動;如果松手時(shí)候不到屏寬的20%,那么會自動還原;如果松手時(shí)候超過20%,那么會向右滑動~~ 此效果很復(fù)雜,我們將其拆分為多個(gè)步驟來分析~ 1)屏幕隨著手勢動而動 先看效果: 這里寫圖片描述

JS代碼:

this.setData({ translate: 'transform: translateX('+(this.data.newmark - this.data.startmark)+'px)' })

這句是關(guān)鍵,很好理解,就是用js控制淺藍(lán)色屏幕translateX的值,這樣手勢不斷左右滑動,屏幕也就跟著手勢慢慢滑動了。 2)彈動效果 先看效果: 這里寫圖片描述

拖動屏幕不足屏寬20%,還原默認(rèn)狀態(tài);超過20%,滑動到最右側(cè)~~ JS代碼:

if(x < 20%){ this.setData({ translate: 'transform: translateX(0px)' }) }else{ this.setData({ translate: 'transform: translateX('+this.data.windowWidth*0.75+'px)' }) }

小于20%,讓translateX(0px)則屏幕還原;大于20%,tanslateX(75%)則屏幕右移到屏幕的75%處。 出自:https://gold.xitu.io/post/5842b629a22b9d007a9295b3


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 云阳县| 荣成市| 中阳县| 重庆市| 江孜县| 德庆县| 周至县| 玉环县| 北海市| 阳高县| 三门县| 子洲县| 崇仁县| 益阳市| 遂平县| 陈巴尔虎旗| 博客| 隆昌县| 鹰潭市| 阿克苏市| 苗栗县| 平舆县| 淅川县| 彝良县| 阜新| 东阳市| 怀化市| 威信县| 同心县| 永泰县| 连州市| 福州市| 盐源县| 个旧市| 宝应县| 绍兴市| 新蔡县| 石渠县| 论坛| 丰台区| 勃利县|