微信小程序?qū)崿F(xiàn)頁(yè)面左右滑動(dòng)
本文實(shí)例為大家分享了微信小程序?qū)崿F(xiàn)頁(yè)面左右滑動(dòng)的具體代碼,供大家參考,具體內(nèi)容如下
效果:
wxml文件
<view bindtouchmove="tap_drag" bindtouchend="tap_end" bindtouchstart="tap_start" class="page-top {{open ? ['c-state','cover'] : ''}} "> <view bindtap="tap_ch" style="{{open ? 'color: red;font-weight: bold;' : ''}}">{{open ? '手指左滑' : '手指右滑'}}</view> <view class='content'> <text>我是內(nèi)容我是內(nèi)容!</text> </view> </view>
js文件
data: { open: false, // mark 是指原點(diǎn)x軸坐標(biāo) mark: 0, // newmark 是指移動(dòng)的最新點(diǎn)的x軸坐標(biāo) newmark: 0, istoright: true }, // 點(diǎn)擊左上角小圖標(biāo)事件 tap_ch: function(e) { if (this.data.open) { this.setData({ open: false }); } else { this.setData({ open: true }); } }, tap_start: function(e) { // touchstart事件 // 把手指觸摸屏幕的那一個(gè)點(diǎn)的 x 軸坐標(biāo)賦值給 mark 和 newmark this.data.mark = this.data.newmark = e.touches[0].pageX; }, tap_drag: function(e) { // touchmove事件 this.data.newmark = e.touches[0].pageX; // 手指從左向右移動(dòng) if (this.data.mark < this.data.newmark) { this.istoright = true; } // 手指從右向左移動(dòng) 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; // 通過(guò)改變 opne 的值,讓主頁(yè)加上滑動(dòng)的樣式 if (this.istoright) { this.setData({ open: true }); } else { this.setData({ open: false }); } },
wxss文件
/* 全局樣式 */ page, .page { height: 100%; font-family: 'PingFang SC', 'Helvetica Neue', Helvetica, 'Droid Sans Fallback', 'Microsoft Yachei', sans-serif; } /* 側(cè)邊欄樣式 */ .page-slidebar { height: 100%; width: 750rpx; position: fixed; background-color:white; z-index: 0; } /* 控制側(cè)邊欄的內(nèi)容距離頂部的距離 */ .page-content { padding-top: 60rpx; } /* 側(cè)邊欄內(nèi)容的 css 樣式 */ .wc { color:black; padding: 30rpx 0 30rpx 150rpx; border-bottom: 1px solid #eee; } /* 當(dāng)屏幕向左滑動(dòng),出現(xiàn)側(cè)邊欄的時(shí)候,主頁(yè)的動(dòng)畫(huà)樣式 */ /* scale:取值范圍 0~1 ,表示屏幕大小是原來(lái)的百分之幾,可以自己修改成 0.8 試下*/ /* translate(60%,0%) 表示向左滑動(dòng)的時(shí)候,側(cè)邊欄占用平時(shí)的寬度為 60% */ /* translate(-60%,0%) 表示向右滑動(dòng)的時(shí)候,側(cè)邊欄占用平時(shí)的寬度為 60% */ .c-state { transform: rotate(0deg) scale(1) translate(60%, 0%); -webkit-transform: rotate(0deg) scale(1) translate(60%, 0%); } /* 主頁(yè)樣式 */ .page-top { height: 100%; position: fixed; width: 750rpx; background-color:white; z-index: 0; transition: All 0.4s ease; -webkit-transition: All 0.4s ease; } /* 左上角圖標(biāo)的樣式 */ .page-top image { position: absolute; width: 68rpx; height: 68rpx; left: 20rpx; top: 20rpx; } /* 遮蓋層樣式 */ .cover{ width: 100%; height: 100%; background-color:gray; opacity: 0.5; z-index: 9000; } .content{ margin-top: 100rpx; }
為大家推薦現(xiàn)在關(guān)注度比較高的微信小程序教程一篇:《微信小程序開(kāi)發(fā)教程》小編為大家精心整理的,希望喜歡。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解決Layui中l(wèi)ayer報(bào)錯(cuò)的問(wèn)題
今天小編就為大家分享一篇解決Layui中l(wèi)ayer報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09MC Dialog js彈出層 完美兼容多瀏覽器(5.6更新)
MC.Dialog 是由肖毅(YesSky) 開(kāi)發(fā)一款界面絢麗美觀 操作簡(jiǎn)單易用的一款js彈出層 MC.Dialog 是經(jīng)過(guò)嚴(yán)格了測(cè)試的 兼容目前ie7+ 以及其他非ie核心的瀏覽器 完美模擬瀏覽器自帶對(duì)話框功能2010-05-05JS 兩個(gè)字符串時(shí)間的天數(shù)差計(jì)算
本文為大家介紹下兩個(gè)字符串時(shí)間的天數(shù)差的計(jì)算公式,感興趣的朋友可以參考下2013-08-08js學(xué)習(xí)總結(jié)之dom2級(jí)事件基礎(chǔ)知識(shí)詳解
這篇文章主要為大家詳細(xì)介紹了js學(xué)習(xí)總結(jié)之dom2級(jí)事件基礎(chǔ)知識(shí),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07js css 實(shí)現(xiàn)遮罩層覆蓋其他頁(yè)面元素附圖
實(shí)現(xiàn)遮罩層的方法有很多,但大多都是使用js css來(lái)實(shí)現(xiàn)的,本例也實(shí)現(xiàn)一個(gè),效果還不錯(cuò),喜歡的朋友可以感受下2014-09-09js操作XML文件的實(shí)現(xiàn)方法兼容IE與FireFox
下面小編就為大家?guī)?lái)一篇js操作XML文件的實(shí)現(xiàn)方法兼容IE與FireFox。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06使弱類型的語(yǔ)言JavaScript變強(qiáng)勢(shì)
Javascript (ECMA Script)是一種弱類型的語(yǔ)言.這并不意味著它沒(méi)有數(shù)據(jù)類型,只是變量或者Javascript對(duì)象屬性不需要一個(gè)特定類型的值分配給它或者它始終使用相同的值.Javascript中的變量同樣支持自由類型轉(zhuǎn)換成為適用(或者要求)的內(nèi)容以便于使用.2009-06-06