微信小程序左右滑動(dòng)的實(shí)現(xiàn)代碼
左滑 右滑 你不再是一個(gè)人
無(wú)論你是一個(gè)程序猿還是一個(gè)程序媛,每天干的事除了coding還是coding,代碼不能解決的問(wèn)題(什么問(wèn)題自己心里還沒(méi)點(diǎn)abcd數(shù)嘛),探探能幫你解決。最近網(wǎng)上特流行一款交友軟件叫探探(據(jù)說(shuō)是yp軟件)。作為探探曾經(jīng)的一名從來(lái)只瀏覽圖片但是沒(méi)有yue過(guò)的資深玩家同時(shí)又是一位熱愛(ài)前端的妹子,我決定要仿一下這個(gè)app。既然是寄幾開(kāi)發(fā),那還不是寄幾說(shuō)了算,毫無(wú)疑問(wèn)整款A(yù)PP的主題風(fēng)格被我改成我最愛(ài)的終極少女粉了hhh,下面讓我們一起來(lái)感受下探探的魅力吧~
項(xiàng)目整體效果

項(xiàng)目部分功能點(diǎn)解析
主頁(yè)圖片左滑右滑對(duì)應(yīng)按鈕變化

首先我們來(lái)聊一下最讓我頭痛的地方,就是主頁(yè)面的左右滑動(dòng)事件并且對(duì)應(yīng)按鈕會(huì)相應(yīng)變化,即我左滑一下圖片下面的灰色按鈕會(huì)有相應(yīng)的動(dòng)畫(huà)效果,右滑則對(duì)應(yīng)著圖片下面的紅色按鈕。對(duì)于一個(gè)剛?cè)胄〕绦蚩拥拿米觼?lái)說(shuō),沒(méi)有大神指點(diǎn)不知道要在這里面的邏輯坑還要繞多久才能繞出來(lái)。得一高人指點(diǎn),我才完美滴實(shí)現(xiàn)了這個(gè)功能。
這里寫(xiě)了三個(gè)大的盒子放著圖片和文字信息,再將他們放到swiper-item里面,用swiper組件實(shí)現(xiàn)整個(gè)盒子的左右滑動(dòng)
<swiper class='swiper-item__content' current="" bindchange="changeswiper"> <swiper-item class="swip"> <view class='page__bd_content'> <image class="slide-image" src="http://pic.qqtn.com/up/2017-12/15126388387704237.jpg" mode="scaleToFill"/> <view class="name">K</view> <view class="age">♂21</view> <view class="conste">金牛座</view> <view class="status">文化/教育</view> </view> </swiper-item> </swiper>
盒子下面不是按鈕,我是放了兩張圖片。
<view class="page__ft">
<image class="notlike {{left?'active':''}}" src="../../images/notlike.png" />
<image class="like {{right?'active':''}}" src="../../images/like.png" />
</view>
先給他們寫(xiě)個(gè)滑動(dòng)的時(shí)候觸發(fā)的動(dòng)畫(huà)效果
.active {
animation: active 1s ease;//定義一個(gè)叫做active的動(dòng)畫(huà)
}
@keyframes active {//補(bǔ)充active動(dòng)作腳本
0% {
transform: scale(0.8);
}
50% {
transform: scale(1.2);
}
100% {
transform: scale(1.0);
}
}
在page的data里面定義三個(gè)變量,將left,right變量綁定到對(duì)應(yīng)圖片中
data: {
left: false ,
right: false,
activeIndex: 0
},
在swiper綁定事件中具體判斷左右滑動(dòng)事件
changeswiper: function(e) {
var index = e.detail.current;//當(dāng)前所在頁(yè)面的 index
if(index > this.data.activeIndex) {//左滑事件判斷
this.setData({
left: true//若為左滑,left值為true,觸發(fā)圖片動(dòng)畫(huà)效果
})
} else if(index < this.data.activeIndex) {//右滑事件判斷
this.setData({
right: true//若為右滑,right值為true,觸發(fā)圖片動(dòng)畫(huà)效果
})
}
setTimeout(() => {//每滑動(dòng)一次,數(shù)據(jù)發(fā)生變化
this.setData({
activeIndex: index,
left:false,
right:false
})
}, 1000);
},
從本地上傳圖片

這個(gè)呀查一查小程序開(kāi)發(fā)文檔就好了,先在要上傳圖片的地方的src綁定個(gè)數(shù)據(jù)變量
<image class="addImg" src="{{imgUrl}}" bindtap="uploadImg" />
放入圖片默認(rèn)地址,就是上傳圖片之前的添加圖片
data: {
imgUrl: '../../images/addImg.png'
},
通過(guò)綁定tap事件將上傳的圖片地址替換進(jìn)去
uploadImg: function(e) {
var that = this;
wx.chooseImage({
count: 1, //上傳圖片數(shù)量
sizeType: ['original', 'compressed'], // 可以指定是原圖還是壓縮圖,默認(rèn)二者都有
sourceType: ['album', 'camera'], // 可以指定來(lái)源是相冊(cè)還是相機(jī),默認(rèn)二者都有
success: function (res) {// 返回選定照片的本地文件路徑列表,tempFilePath可以作為img標(biāo)簽的src屬性顯示圖片
var tempFilePaths = res.tempFilePaths;
that.setData({
imgUrl: tempFilePaths
})
wx.showToast({//顯示上傳成功
title: '上傳成功',
icon: 'success',
duration: 2000
})
}
}),
配對(duì)成功列表?yè)?jù)通過(guò)easy-mock獲取后臺(tái)數(shù)據(jù)

block wx:for渲染一個(gè)包含多節(jié)點(diǎn)的結(jié)構(gòu)塊
<swiper-item>
<view class="swiper-item__content">
<block wx:for="{{friendsList}}" wx:key="index">
<view class="weui-tab__content">
<view class="weui-media-box__hd">
<image src="{{item.avatar}}" mode="aspectFit"></image>
</view>
<view class="weui-media-box__bd">
<view class="weui-media-box__nickname">{{item.nickname}}</view>
<view class="weui-media-box__message">{{item.message}}</view>
</view>
</view>
</block>
</view>
</swiper-item>
獲取后臺(tái)數(shù)據(jù)
wx.request({
url: 'https://www.easy-mock.com/mock/5a23dbf382614c0dc1bebf04/getFriendsList/getFriendsList',
success: (res) => {
// console.log(response);
this.setData({
friendsList: res.data.data.friendsList
})
}
})
其它差不多就是切頁(yè)面了,個(gè)人原因用不太習(xí)慣weui的官方樣式,每個(gè)頁(yè)面都是我自己嘔心瀝血碼出來(lái)的,所以大家不喜輕點(diǎn)噴哈,還在努力學(xué)習(xí)當(dāng)中~~~
總結(jié)
以上所述是小編給大家介紹的微信小程序左右滑動(dòng)的實(shí)現(xiàn)代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- 微信小程序MUI側(cè)滑導(dǎo)航菜單示例(Popup彈出式,左側(cè)滑動(dòng),右側(cè)不動(dòng))
- 微信小程序MUI側(cè)滑導(dǎo)航菜單示例(Popup彈出式,左側(cè)不動(dòng),右側(cè)滑動(dòng))
- 微信小程序左滑動(dòng)顯示菜單功能的實(shí)現(xiàn)
- 微信小程序圖片橫向左右滑動(dòng)案例
- 微信小程序左右滑動(dòng)切換頁(yè)面詳解及實(shí)例代碼
- 微信小程序側(cè)邊欄滑動(dòng)特效(左右滑動(dòng))
- 微信小程序 向左滑動(dòng)刪除功能的實(shí)現(xiàn)
- 微信小程序滾動(dòng)Tab實(shí)現(xiàn)左右可滑動(dòng)切換
- 微信小程序?qū)崿F(xiàn)左側(cè)滑動(dòng)導(dǎo)航欄
- 微信小程序?qū)崿F(xiàn)點(diǎn)餐小程序左側(cè)滑動(dòng)菜單
相關(guān)文章
微信小程序用戶登錄和登錄態(tài)維護(hù)的實(shí)現(xiàn)
這篇文章主要介紹了微信小程序用戶登錄和登錄態(tài)維護(hù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
js使用Replace結(jié)合正則替換重復(fù)出現(xiàn)的字符串功能示例
這篇文章主要介紹了js使用Replace結(jié)合正則替換重復(fù)出現(xiàn)的字符串功能,可實(shí)現(xiàn)關(guān)鍵詞描紅的功能,涉及JS重復(fù)匹配的相關(guān)操作技巧,需要的朋友可以參考下2016-12-12
基于canvas實(shí)現(xiàn)的鐘擺效果完整實(shí)例
這篇文章主要介紹了基于canvas實(shí)現(xiàn)的鐘擺效果,以完整實(shí)例形式分析了JavaScript結(jié)合html5的canvas技術(shù)實(shí)現(xiàn)鐘擺動(dòng)態(tài)旋轉(zhuǎn)效果的方法,需要的朋友可以參考下2016-01-01
Bootstrap Table 在指定列中添加下拉框控件并獲取所選值
通過(guò) bootstrap-table 的Column 配置項(xiàng)中的formatter,將獲取到的數(shù)據(jù)轉(zhuǎn)換為包含數(shù)據(jù)的 select 控件。然后根據(jù)用戶選擇項(xiàng)更新對(duì)應(yīng)單元格數(shù)據(jù),最后通過(guò)getallselection方法獲取所選行數(shù)據(jù)2017-07-07
在Postman的腳本中如何使用pm對(duì)象獲取接口的請(qǐng)求參數(shù)
這篇文章主要介紹了在Postman的腳本中如何使用pm對(duì)象獲取接口的請(qǐng)求參數(shù),本文通過(guò)實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09

