• <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中文網其它相關文章!


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

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

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 午夜免费啪视频在线观看| 精品乱子伦一区二区三区高清免费播放| 国产午夜免费高清久久影院| 亚洲麻豆精品国偷自产在线91| 爱情岛论坛亚洲品质自拍视频网站 | 精品亚洲永久免费精品| 中文字幕成人免费高清在线视频 | 久久国产亚洲观看| a级毛片高清免费视频| 久久久亚洲精品无码| 91禁漫免费进入| 亚洲一本到无码av中文字幕 | 日本一区二区三区免费高清在线| 国产又大又粗又硬又长免费| 黄色片网站在线免费观看| 亚洲av日韩av欧v在线天堂| 一级中文字幕乱码免费| 亚洲精品美女久久久久99| 国产一精品一av一免费爽爽| 亚洲精品亚洲人成在线麻豆| 成人黄动漫画免费网站视频| 亚洲av无码偷拍在线观看| 亚洲欧洲精品成人久久曰影片| 国内精品99亚洲免费高清| 久久精品亚洲中文字幕无码麻豆| 成人免费午夜无码视频| 亚洲av成人中文无码专区| 久久激情亚洲精品无码?V| 无码人妻精品中文字幕免费| 国产精品亚洲专区在线观看| 又黄又爽一线毛片免费观看 | 国产在线不卡免费播放| 中文永久免费观看网站| 亚洲视频在线观看免费视频| 女人被免费视频网站| 人禽伦免费交视频播放| 亚洲精品美女在线观看播放| 国产精品视_精品国产免费 | 亚洲va无码手机在线电影| 国产成人免费在线| 国产亚洲综合久久|