微信小程序12行js代码自己写个滑块功能

效果图如下所示

在这里插入图片描述

.wxml

<view class="jindu" bindtap="cuin">
  <view class="xian" style="width:{{towards}}px;">
    <view class="yuan" bindtouchmove='touchMove'></view>
  </view>
</view>
<view class="bfb">{{percen>100?100:percen}}%</view>

.wxss

page{
  background-color:#ddd;
}
.jindu{
  margin: 50px calc((100% - 80%) / 2) 0;
  width: 80%;
  float: left;
  height: 6rpx;
  background-color: #fff;
  position: relative;
}
.xian{
  width: 0%;
  float: left;
  height: 6rpx;
  background-color: #1989FA;
  position: relative;
  transition: all 0.1s;
}
.yuan{
  border-radius: 50%;
  background: #1989FA;
  position: absolute;
  right: 0rpx;
  display: block;
  margin: calc((6rpx - 14rpx)/2);
  width: 14rpx;
  height: 14rpx;
}
.bfb{
  width: 300px;
  margin: 10px calc((100% - 300px) / 2) 0;
  float: left;
}

.js

Page({
  data: {
    towards: 0,
    percen:0,
    kuan:0,
    width_a:parseInt((wx.getSystemInfoSync().windowWidth*0.8)),
    width_b:parseInt((wx.getSystemInfoSync().windowWidth*0.1)),
  },
  onLoad:function(options){
    this.setData({
      kuan: parseInt((wx.getSystemInfoSync().windowWidth - this.data.width_a) / 2)
    })
  },
  cuin:function(e){
    this.setData({
      towards: (e.detail.x - this.data.kuan) > this.data.width_a ? this.data.width_a : (e.detail.x - this.data.kuan),
      percen: ((e.detail.x - this.data.width_b) / (this.data.width_a / 100)) < 1 ? 0 : parseInt((e.detail.x - this.data.width_b) / (this.data.width_a / 100)),
    })
  },
  touchMove: function (e) {
    if (e.touches.length == 1) {
      var moveX = e.touches[0].clientX;
      var towards = (moveX - this.data.kuan) > this.data.width_a ? this.data.width_a : (moveX - this.data.kuan)
      this.data.percen = (towards / (this.data.width_a / 100)) < 1 ? 0 : parseInt(towards / (this.data.width_a / 100))
      this.setData({
        towards: towards,
        percen: this.data.percen
      })
    }
  },
})

遇到问题可以看我主页加我Q,很少看博客,对你有帮助别忘记点赞收藏。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值