// components/carslider.js var app = getApp() Component({ /** * 组件的属性列表 */ properties: { "min":{ value:0, type:Number }, "max":{ value:100, type:Number }, "splitnum":{ value:"0", type:String }, "unit":{ value:"0", type:String }, "splitvalue":{ value:NaN, type:String } // "step":{ // value:"", // type:String // }, // "value":{ // value:"", // type:String // }, // "activeColor":{ // value:"", // type:String // }, // "backgroundColor":{ // value:"", // type:String // }, // "block-size":{ // value:"", // type:String // }, // "block-color":{ // value:"", // type:String // }, // "show-value":{ // value:"", // type:String // } }, /** * 组件的初始数据 */ data: { scale:0, gscale:app.globalData.scale }, ready:function(){ if(this.data.splitnum>0){ var min = parseInt(this.data.min); var space = this.data.max-this.data.min; var gap = space/this.data.splitnum; var list = [this.data.min]; for(var i=1;i<=this.data.splitnum;i++){ list.push(parseInt(this.data.min)+i*gap); } this.setData({ list:list, value:min+gap*this.data.scale }); } }, /** * 组件的方法列表 */ methods: { changeScale:function(e){ var left = e.touches[0].pageX*this.data.gscale-45; var scale = left/660; if(scale>1){ scale=1; }else if(scale<0){ scale=0; } var space = this.data.max-this.data.min; var selectv = space*scale; if(this.data.splitvalue){ selectv = Math.round(selectv/this.data.splitvalue)*this.data.splitvalue; } scale = selectv/space; var value = Math.round(selectv+parseInt(this.data.min)); var obj = { scale:scale, value:value }; this.setData(obj) this.triggerEvent("changevalue",obj); }, changeEndScale:function(e){ var obj = { scale:this.data.scale, value:this.data.value }; this.triggerEvent("changeend",obj); } } })