溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

javascript怎么才可以實(shí)現(xiàn)微信小程序左右滑動(dòng)功能

發(fā)布時(shí)間:2021-01-25 14:36:23 來源:億速云 閱讀:265 作者:小新 欄目:移動(dòng)開發(fā)

這篇文章給大家分享的是有關(guān)javascript怎么才可以實(shí)現(xiàn)微信小程序左右滑動(dòng)功能的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

項(xiàng)目整體效果

javascript怎么才可以實(shí)現(xiàn)微信小程序左右滑動(dòng)功能

項(xiàng)目部分功能點(diǎn)解析

主頁(yè)圖片左滑右滑對(duì)應(yīng)按鈕變化

javascript怎么才可以實(shí)現(xiàn)微信小程序左右滑動(dòng)功能

首先我們來聊一下最讓我頭痛的地方,就是主頁(yè)面的左右滑動(dòng)事件并且對(duì)應(yīng)按鈕會(huì)相應(yīng)變化,即我左滑一下圖片下面的灰色按鈕會(huì)有相應(yīng)的動(dòng)畫效果,右滑則對(duì)應(yīng)著圖片下面的紅色按鈕。對(duì)于一個(gè)剛?cè)胄〕绦蚩拥拿米觼碚f,沒有大神指點(diǎn)不知道要在這里面的邏輯坑還要繞多久才能繞出來。得一高人指點(diǎn),我才完美滴實(shí)現(xiàn)了這個(gè)功能。

這里寫了三個(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>

先給他們寫個(gè)滑動(dòng)的時(shí)候觸發(fā)的動(dòng)畫效果

.active {
 animation: active 1s ease;//定義一個(gè)叫做active的動(dòng)畫
}
@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)畫效果
  })
 } else if(index < this.data.activeIndex) {//右滑事件判斷
  this.setData({
  right: true//若為右滑,right值為true,觸發(fā)圖片動(dòng)畫效果
  })
 }
 setTimeout(() => {//每滑動(dòng)一次,數(shù)據(jù)發(fā)生變化
  this.setData({
  activeIndex: index,
  left:false,
  right:false
  })
 }, 1000);
 },

從本地上傳圖片

javascript怎么才可以實(shí)現(xiàn)微信小程序左右滑動(dòng)功能

這個(gè)呀查一查小程序開發(fā)文檔就好了,先在要上傳圖片的地方的src綁定個(gè)數(shù)據(jù)變量

<image class="addImg" src="{{imgUrl}}" bindtap="uploadImg" />

放入圖片默認(rèn)地址,就是上傳圖片之前的添加圖片

data: {
 imgUrl: '../../images/addImg.png'
 },

通過綁定tap事件將上傳的圖片地址替換進(jìn)去

uploadImg: function(e) {
var that = this;
wx.chooseImage({
 count: 1, //上傳圖片數(shù)量
 sizeType: ['original', 'compressed'], // 可以指定是原圖還是壓縮圖,默認(rèn)二者都有
 sourceType: ['album', 'camera'], // 可以指定來源是相冊(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ù)通過easy-mock獲取后臺(tái)數(shù)據(jù)

javascript怎么才可以實(shí)現(xiàn)微信小程序左右滑動(dòng)功能

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è)面都是我自己嘔心瀝血碼出來的,所以大家不喜輕點(diǎn)噴哈,還在努力學(xué)習(xí)當(dāng)中。

感謝各位的閱讀!關(guān)于“javascript怎么才可以實(shí)現(xiàn)微信小程序左右滑動(dòng)功能”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI