最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序 按鈕滑動的實現(xiàn)方法

 更新時間:2017年09月27日 10:56:42   作者:我是漸漸呀  
這篇文章主要介紹了微信小程序 按鈕滑動的實現(xiàn)方法的相關(guān)資料,希望通過本文能幫助到大家實現(xiàn)這樣的功能,需要的朋友可以參考下

微信小程序 按鈕滑動的實現(xiàn)方法

一.先看東西


滑動前

滑動后

二.再上代碼

index.wxml

<view class="content">
  <view class="sliderContent">
    <input placeholder="驗證碼" placeholder-class="input-placeholder" disabled="{{disabled}}" />
    <view class="slider" bindtouchstart="moveSendBtnStart" bindtouchend="moveSendBtnEnd" bindtouchmove="moveSendBtn" style="left:{{moveSendBtnLeft}}rpx;background-color:{{SendBtnColor}}">發(fā)送</view>
  </view>
</view>

index.wxss

.content {
  margin-top: 100rpx;
  font-size: 24rpx;
}

.sliderContent{
  position: relative;
  margin: 0 auto;
  margin-bottom: 50rpx;
  padding-left: 60rpx;
  width: 425rpx;
  box-sizing: border-box;
  height: 70rpx;
  line-height: 70rpx;
  border-radius: 60rpx;
  background-color: #fff;
  color: #289adc;
  box-shadow: 0px 4px 6px 0px rgba(37, 114, 219, 0.3);
}

.sliderContent input {
  line-height: 70rpx;
  height: 70rpx;
  box-sizing: border-box;
  padding-left: 40rpx;
  width: 250rpx;
}

.input-placeholder {
  text-align: center;
  color: #289adc;
}


 .slider {
  position: absolute;
  top: 0;
  left: 0;
  width: 150rpx;
  border-radius: 60rpx;
  text-align: center;
  background-color: #7f7f7f;
  color: #fff;
  box-shadow: 0px 4px 6px 0px rgba(37, 114, 219, 0.3);
}

index.js

Page({
  data: {
    moveStartX: 0, //起始位置
    moveSendBtnLeft: 0, //發(fā)送按鈕的left屬性
    moveEndX: 0, //結(jié)束位置
    screenWidth: 0, //屏幕寬度
    moveable: true, //是否可滑動
    disabled: true,//驗證碼輸入框是否可用,
    SendBtnColor: "#7f7f7f" //滑動按鈕顏色
  },

  onLoad: function () {
    var that = this;
    // 獲取屏幕寬度
    wx.getSystemInfo({
      success: function (res) {
        that.setData({
          screenWidth: res.screenWidth
        })
      },
    })
  },
  //  開始移動
  moveSendBtnStart: function (e) {
    if (!this.data.moveable) {
      return;
    }
    console.log("start");
    console.log(e);
    this.setData({
      moveStartX: e.changedTouches["0"].clientX
    })
  },
  //移動發(fā)送按鈕
  moveSendBtn: function (e) {
    if (!this.data.moveable) {
      return;
    }
    var that = this;
    // console.log(e.touches[0]);
    var left = ((e.touches[0].clientX - that.data.moveStartX) / (that.data.screenWidth / 750))
    console.log(left)
    if (left <= 275.5) {
      this.setData({
        moveSendBtnLeft: left
      })
    } else {

      this.setData({
        moveSendBtnLeft: 275.5
      })
    }
  },
  // 結(jié)束移動
  moveSendBtnEnd: function (e) {
    console.log("end");
    var that = this;
    var left = ((e.changedTouches[0].clientX - that.data.moveStartX) / (that.data.screenWidth / 750))
    console.log(left);
    if (left < 275.5) {
      for (let i = left; i >= 0; i--) {

        that.setData({
          moveSendBtnLeft: i
        })
      }
    } else {
      that.setData({
        moveEndX: e.changedTouches[0].clientX,
        moveable: false,
        disabled: false,
        SendBtnColor: "#289adc"
      })
    }
  }


})

三.順便說說

1.按鈕滑動事件

bindtouchstart //按鈕開始滑動
bindtouchend //按鈕結(jié)束滑動
bindtouchmove //按鈕正在滑動

在按鈕開始滑動是記錄開始的位置

滑動結(jié)束時要判斷按鈕是否已經(jīng)滑動到最右側(cè),如果只滑動到中間,則彈回

滑動過程中要計算與初始位置的距離,然后計算并改變button的left屬性值

2.按鈕滑動的距離計算

因為滑動事件返回的數(shù)值都是以px作為單位,而我們在界面設(shè)計時使用的是rpx,在這里我們要進行數(shù)值計算,在onLoad中,我們獲取到當(dāng)前設(shè)備的寬度,rpx作為單位時,認為當(dāng)前設(shè)備的邏輯寬度為750rpx,假設(shè)屏幕實際寬度為400px,那么1px = 400/750 rpx,那么滑動的距離 = 實際互動距離 / (400/750) rpx

經(jīng)過換算后,我們就可以得到以rpx作為單位的滑動距離

如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • 微信小程序 購物車簡單實例

    微信小程序 購物車簡單實例

    這篇文章主要介紹了微信小程序 購物車簡單實例的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • 微信小程序中使元素占滿整個屏幕高度實現(xiàn)方法

    微信小程序中使元素占滿整個屏幕高度實現(xiàn)方法

    這篇文章主要介紹了微信小程序中使元素占滿整個屏幕高度實現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • JavaScript?history?對象詳解

    JavaScript?history?對象詳解

    這篇文章主要介紹了JavaScript?history?對象詳解,history?對象表示當(dāng)前窗口首次使用以來用戶的導(dǎo)航歷史記錄。因為?history?是?window?的屬性,所以每個?window?都有自己的?history?對象,更多詳細內(nèi)容請參考下面文章內(nèi)容
    2021-11-11
  • 制作特殊字的腳本

    制作特殊字的腳本

    制作特殊字的腳本...
    2006-06-06
  • Flutter?WebView性能優(yōu)化使h5像原生頁面一樣優(yōu)秀

    Flutter?WebView性能優(yōu)化使h5像原生頁面一樣優(yōu)秀

    這篇文章主要為大家介紹了Flutter?WebView性能優(yōu)化使h5像原生頁面一樣優(yōu)秀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • JSON stringify及parse方法實現(xiàn)數(shù)據(jù)深拷貝

    JSON stringify及parse方法實現(xiàn)數(shù)據(jù)深拷貝

    這篇文章主要為大家介紹了JSON.stringify遞歸及JSON.parse有限狀態(tài)自動機實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • js 數(shù)組 fill() 填充方法

    js 數(shù)組 fill() 填充方法

    這篇文章主要介紹了js 數(shù)組 fill() 的填充方法,初始化數(shù)組的方法,但是初始化數(shù)組之后,數(shù)組中的每一項元素默認為 empty 空位占位,如何對數(shù)組這些空位添加默認的元素,ES6提供了 fill() 方法實現(xiàn)這一操作。本文總結(jié)數(shù)組 fill() 方法的詳細使用,需要的朋友可以參考一下
    2021-10-10
  • JS中this的4種綁定規(guī)則詳解

    JS中this的4種綁定規(guī)則詳解

    如果你學(xué)過面向?qū)ο缶幊?,那你肯定知道干什么用的,如果你沒有學(xué)過,那么暫時可以不用看這篇文章,this既不指向函數(shù)自身,也不指函數(shù)的詞法作用域,具體怎么使用JS中的this,JS中的this綁定規(guī)則又是什么?
    2020-02-02
  • 微信小程序 Image API實例詳解

    微信小程序 Image API實例詳解

    這篇文章主要介紹了微信小程序 Image API實例詳解的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • Lambda表達式原理及示例

    Lambda表達式原理及示例

    這篇文章主要介紹了Java8中的新特性Lambda表達式,文中的示例可以幫助大家快速了解該特性,感興趣的小伙伴可以一起學(xué)習(xí)
    2021-08-08

最新評論

金川县| 长白| 溧阳市| 萨嘎县| 澜沧| 武川县| 五河县| 灌云县| 常宁市| 靖西县| 宽甸| 瓦房店市| 昌邑市| 南召县| 渝北区| 随州市| 普定县| 济宁市| 洪泽县| 岫岩| 聂拉木县| 陆良县| 兰考县| 乐平市| 木里| 广宗县| 三河市| 庆阳市| 花垣县| 东海县| 噶尔县| 桐庐县| 略阳县| 壤塘县| 忻州市| 宜章县| 南澳县| 塔河县| 安顺市| 博野县| 庐江县|