• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 應用軟件教程 > 詳細頁面

        小程序中多滑塊的完成代碼

        小程序中多滑塊的完成代碼

        更新時間:2025-09-20 文章作者:未知 信息來源:網絡 閱讀次數:

        微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一...
        微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應用。小程序是一種不用下載就能使用的應用,也是一項門檻非常高的創新,經過將近兩年的發展,已經構造了新的小程序開發環境和開發者生態。
        本篇文章給大家帶來的內容是關于小程序中多滑塊的實現代碼 ,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

        最近在用原生的代碼開發小程序,需要用到多滑塊的slider,但是官方的api只支持單滑塊,所以就在原來的基礎上草草的寫了一個。有什么不足的地方還請大家多多指教,想封裝成組件的也可自行封裝,我這就不講了。;

        話不多說,上代碼:

        html:

        <view class='sliderHCon'>
          <view class='showMoney'>
            <text class='MoneyValue'>¥{{leftShowValue}}</text>
            <text class='MoneyValue'>¥{{rightShowValue}}</text>
          </view>
        
          <view class='twoSlider'>
            <slider class='slider-left' min='{{Min}}' max='{{Max}}' value='{{leftValue}}' activeColor='#ccc' backgroundColor='#ccc' block-size='{{blockSize}}' step='{{step}}' bindchanging="leftChange" rightChange='leftChange'>
              <em class='slider-bg' style='left:{{setSliderLeftX}};width:{{setSliderWidthX}}'></em>
            </slider>
            <slider class='slider-right' min='{{Min}}' max='{{Max}}' value='{{rightValue}}' activeColor='#ccc' backgroundColor='#ccc' block-size='{{blockSize}}' step='{{step}}' bindchanging="rightChange" bindchange='rightChange'/>
          </view>
        </view>

        css

        .sliderHCon {
          height: 250rpx;
          width: 100%;
          margin: auto;
          display: flex;
          justify-content: center;
          align-items: center;
          flex-direction: column;
        }
        
        .MoneyValue {
          font-size: 30rpx;
          text-align: center;
          color: #999;
          margin-top: 15rpx;
        }
        
        .showMoney text {
          margin-right: 30rpx;
        }
        
        .twoSlider {
          width: 100%;
          height:100px;
          display: flex;
          flex-direction: row;
          justify-content: center;
          align-items: center;
          position: relative;
        }
        .slider-left,.slider-right{position: absolute;left:0;right:0;}
        .slider-bg{position: absolute;top:50%;margin-top:-1px;left:0;width:100%;height:2px;background: blue;z-index: 9;}

        js

        data: {
              blockSize:20,
              step:10,
              Min: 0, //最小值
              Max: 1000, //最大值
              leftValue: 0, //左邊滑塊默認值
              rightValue: 1000, //右邊滑塊默認值
              leftShowValue: 0, //界面顯示左邊滑塊默認值
              rightShowValue: 1000, //界面顯示右邊滑塊默認值
              leftWidth: '50', //左邊滑塊可滑動長度:百分比
              rightWidth: '50', //右邊滑塊可滑動長度:百分比
              sliderWidth:0, // slider的寬度;
              setSliderLeftX: 0, // 設置的sliderp的left
              setSliderWidthX: 0// 設置的sliderp的width
            },
        
        onLoad(options) {
              var query = wx.createSelectorQuery(); // 如果是封裝的組件的話,這邊請注意寫法不同哦;
              query.select('.slider-left').boundingClientRect((rect) => {        
                this.setData({
                  sliderWidth: rect.width,
                  setSliderLeftX: (rect.width / this.data.Max * this.data.leftValue) + this.data.blockSize/2 + 'px',
                  setSliderWidthX: rect.width / this.data.Max * (this.data.rightValue - this.data.leftValue) - this.data.blockSize + 'px',
                })
                
              }).exec();
                
            },
        
         // 左邊滑塊滑動的值
          leftChange(e){
            
            var that = this;
            that.setData({
              leftValue: e.detail.value //設置左邊當前值
            })
            this.setSliderBgColor(e,'left');
          },
          // 右邊滑塊滑動的值
          rightChange: function (e) {
            var that = this;
            that.setData({
              rightValue: e.detail.value,
            })
            this.setSliderBgColor(e, 'right');
          },
        
          setSliderBgColor(e, type){
              if (type == 'left') { // 左邊
                if (this.data.leftValue < this.data.rightValue) {
                  console.log('拖左不超右邊');
                  this.setData({ 
                    leftShowValue: e.detail.value,
                  })
                  this.setData({ 
                    rightShowValue: this.data.rightValue,
                  })
                } else {
                  console.log('拖左超右邊');
                  this.setData({ 
                    leftShowValue: this.data.rightValue,
                  })
                  this.setData({ 
                    rightShowValue: e.detail.value,
                  })
                }
              } else { // 右邊
                if (this.data.leftValue < this.data.rightValue) {
                  console.log('拖右不超右邊');
                  this.setData({ 
                    rightShowValue: e.detail.value,
                  })
                  this.setData({
                    leftShowValue: this.data.leftValue,
                  })
                } else {
                  console.log('拖右超右邊')
                  this.setData({ 
                    leftShowValue: e.detail.value,
                  })
                  this.setData({ 
                    rightShowValue: this.data.leftValue,
                  })
                }
              }
        
        
             const v = this.data.sliderWidth / this.data.Max 
              
              if (v * (this.data.rightShowValue - this.data.leftShowValue) - this.data.blockSize >= 0) {
                this.setData({
                  setSliderLeftX: (v * this.data.leftShowValue) + this.data.blockSize / 2 + 'px',
                  setSliderWidthX: v * (this.data.rightShowValue - this.data.leftShowValue) - this.data.blockSize + 'px',
                })
               // console.log(1)
              } else {
                this.setData({
                  setSliderLeftX: (v * this.data.leftShowValue) + this.data.blockSize / 2 + 'px',
                  setSliderWidthX: 0 + 'px',
                })
             
              }
            
           
          }

        相關推薦:

        微信小程序中用Python生成二維碼的兩種方式

        微信小程序功能實現:上滑加載下拉刷新

        以上就是小程序中多滑塊的實現代碼的詳細內容,更多請關注php中文網其它相關文章!


        小程序是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應用。

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 老司机永久免费网站在线观看| 日本免费污片中国特一级| 一个人看的www在线观看免费| 亚洲AV永久无码精品一百度影院| 国产大片免费天天看| 亚洲综合网站色欲色欲| 中文成人久久久久影院免费观看| 亚洲精品国产精品国自产观看| 亚洲av无码成人精品区一本二本 | 国产在线国偷精品免费看| 亚洲午夜激情视频| 成人精品视频99在线观看免费| 亚洲精品乱码久久久久久按摩 | 9277手机在线视频观看免费| 久久综合亚洲色HEZYO社区| 最近免费中文字幕大全免费| 亚洲人成网网址在线看| 日本免费电影一区| 国产偷窥女洗浴在线观看亚洲| 国产精品午夜免费观看网站| 国产亚洲精久久久久久无码| 日本免费久久久久久久网站| 亚洲国产福利精品一区二区| 好男人看视频免费2019中文| 一级毛片**免费看试看20分钟 | xxxx日本在线播放免费不卡| 久久精品九九亚洲精品天堂| 大学生一级毛片免费看| 黄色网址在线免费观看| 亚洲成a人片在线观看无码| 四虎永久在线精品免费观看视频| 亚洲国产av玩弄放荡人妇| 久久综合亚洲色HEZYO国产| 亚洲一区免费观看| 妇女自拍偷自拍亚洲精品| 国产亚洲精品资源在线26u| 一个人免费观看www视频在线| 又粗又长又爽又长黄免费视频| 亚洲国产成人久久精品影视| 性做久久久久免费看| 久久精品国产免费一区|