css=====================================movable-view{display:flex;对齐项目:居中;证明内容:居中;高度:100rpx;宽度:1rpx;背景:透明;颜色:#fff;position:relative;}movable-viewview{position:absolute;顶部:-40rpx;背景:#799AF4;z-指数:10;/*高度:100%;*/宽度:150rpx;text-align:center;}movable-area{height:30rpx;宽度:500rpx;保证金:50rpx;背景:线性渐变(向右,#FFC02533%,#56DBBD33%,#56DBBD66%,#FB8D8266%,#FB8D82);/*溢出:隐藏;*/}输入{保证金:0自动;边框:1rpx实心#000;宽度:150rpx;高度:50rpx;文本对齐:居中;}.max{宽度:600rpx;高度:600rpx;}.page-section{宽度:100%;margin-bottom:60rpx;}.page-section:last-child{margin-bottom:0;}.page-section-title{字体大小:28rpx;颜色:#999999;保证金底部:10rpx;左填充:30rpx;padding-right:30rpx;}html========================================可移动视图区域小于可移动区域别打我加1减1js=====================================Page({onShareAppMessage(){return{title:'movable-view',path:'page/component/pages/movable-view/movable-view'}},onLoad(){this.initDomX();},data:{x:0,//x轴y:0,//y轴val:60,//输入框值min:60,//最小值max:150,//最大值areaVal:90,//max-mindomX:0,//权重的总长度},initDomX(){让_this=this;constquery=wx.createSelectorQuery();query.select('#area').boundingClientRect();query.select('#areaView').boundingClientRect();query.exec((res)=>{_this.setData({domX:res[0].width-res[1].width})})},onChange(e){let_this=this;this.setData({//取整//val:Math.round(_this.data.min+(_this.data.areaVal*((Math.round(e.detail.x/_this.data.domX*10000)/100)/100)))//保留两位数val:(_this.data.min+(_this.data.areaVal*((e.detail.x/_this.data.domX*10000)/100)/100)).toFixed(1)})},onBlur(e){let_this=this;让val=e.detail.value-0;this.setData({x:(_this.data.domX*((val-_this.data.min)/_this.data.areaVal)),//val:val.toFixed(2)})console.log((_this.data.domX*((val-_this.data.min)/_this.data.areaVal)));//this.setData({//取整//val:Math.round(e.detail.value),//x:Math.round(_this.data.domX*((val-_this.data.min)/_this.data.areaVal))//两位小数//val:val.toFixed(2),//x:_this.data.domX*((val-_this.data.min)/_this.data.areaVal)//})},onAdd(e){let_this=this;让val=(_this.data.val-0)+1;控制台日志(val);this.setData({//val:val,x:(_this.data.domX*((val-_this.data.min)/_this.data.areaVal)),})},onSub(e){let_this=这个;让val=(_this.data.val-0)-1;this.setData({//val:val,x:(_this.data.domX*((val-_this.data.min)/_this.data.areaVal)),})console.log(this.data.x);}})效果:我拖的是节点,样式随便写