📄 slider.js
字号:
i1=profile.getSubNode('IND1')[k2](),
i2=profile.getSubNode('IND2')[k2]();
if(Math.abs(i1-cur)<Math.abs(i2-cur))
arr[0]=v;
else arr[1]=v;
}
profile.boxing().setUIValue(profile.box._adjustValue(profile,arr));
}
},
IND1:{
onKeydown:function(profile, e, src){
var p=profile.properties,
type=p.type=='vertical',
key=linb.Event.getKey(e)[0];
if(key==(type?'up':'left'))
profile.box._auto(profile, false);
if(key==(type?'down':'right'))
profile.box._auto(profile, true);
},
onKeyout:function(profile){
linb.Thread.abort(profile.$id+':auto');
},
onKeyup:function(profile){
linb.Thread.abort(profile.$id+':auto');
},
onMousedown:function(profile, e, src){
var p=profile.properties,
type=p.type=='vertical',
k2=type?'offsetTop':'offsetLeft',
k3=type?'offsetHeight':'offsetWidth',
box=profile.box;
linb([src]).startDrag(e,{
widthIncrement:p.steps?profile._size/p.steps:null,
dragType:'none',
targetReposition:true,
horizontalOnly:type?true:null,
verticalOnly:type?null:true,
maxLeftOffset: src[k2],
maxRightOffset: src.parentNode[k3]-src[k2],
dragCursor:'default'
});
linb([src]).css('zIndex',10).focus();
profile.getSubNode('IND2').css('zIndex',5);
},
beforeDragbegin:function(profile, e, src){
var type=profile.properties.type=='vertical';
linb(src)[type?'top':'left'](profile.__x=src[type?'offsetTop':'offsetLeft']);
},
onDrag:function(profile, e, src){
var offset=linb.DragDrop.getProfile().offset,
type=profile.properties.type=='vertical',
arr=profile.box._v2a(profile,profile.properties.$UIvalue);
arr[0]=((profile.__x+offset[type?'y':'x'])/src.parentNode[type?'offsetHeight':'offsetWidth'])*100;
profile.boxing().setUIValue(profile.box._adjustValue(profile,arr));
},
onDragstop:function(profile, e, src){
linb(src).onMouseout(true,{$force:true}).onMouseup(true);
},
onClick:function(){return false}
},
IND2:{
onKeydown:function(profile, e, src){
var p=profile.properties,
type=p.type=='vertical',
key=linb.Event.getKey(e)[0];
if(key==(type?'up':'left'))
profile.box._auto(profile, false);
if(key==(type?'down':'right'))
profile.box._auto(profile, true);
},
onKeyout:function(profile){
linb.Thread.abort(profile.$id+':auto');
},
onKeyup:function(profile){
linb.Thread.abort(profile.$id+':auto');
},
onMousedown:function(profile, e, src){
var p=profile.properties,
type=p.type=='vertical',
k2=type?'offsetTop':'offsetLeft',
k3=type?'offsetHeight':'offsetWidth',
box=profile.box;
linb([src]).startDrag(e,{
widthIncrement:p.steps?profile._size/p.steps:null,
dragType:'none',
targetReposition:true,
horizontalOnly:type?true:null,
verticalOnly:type?null:true,
maxLeftOffset: src[k2],
maxRightOffset: src.parentNode[k3]-src[k2],
dragCursor:'default'
});
linb([src]).css('zIndex',10).focus();
profile.getSubNode('IND1').css('zIndex',5);
},
beforeDragbegin:function(profile, e, src){
var type=profile.properties.type=='vertical';
linb(src)[type?'top':'left'](profile.__x=src[type?'offsetTop':'offsetLeft']);
},
onDrag:function(profile, e, src){
var offset=linb.DragDrop.getProfile().offset,
type=profile.properties.type=='vertical',
arr=profile.box._v2a(profile,profile.properties.$UIvalue);
arr[1]=((profile.__x+offset[type?'y':'x'])/src.parentNode[type?'offsetHeight':'offsetWidth'])*100;
profile.boxing().setUIValue(profile.box._adjustValue(profile,arr));
},
onDragstop:function(profile, e, src){
linb(src).onMouseout(true,{$force:true}).onMouseup(true);
},
onClick:function(){return false}
},
RULERRIGHT:{
onClick:function(profile, e, src){
var p=profile.properties,
b=profile.boxing(),
c=profile.box,
arr=c._v2a(profile,p.$UIvalue);
if(!p.isRange)
arr[0]=100;
else
arr[1]=100;
b.setUIValue(profile.box._adjustValue(profile,arr));
}
},
DECREASE:{
onMousedown:function(profile){
profile.box._auto(profile, false);
},
onMouseout:function(profile){
linb.Thread.abort(profile.$id+':auto');
},
onMouseup:function(profile){
linb.Thread.abort(profile.$id+':auto');
}
},
INCREASE:{
onMousedown:function(profile){
profile.box._auto(profile, true);
},
onMouseout:function(profile){
linb.Thread.abort(profile.$id+':auto');
},
onMouseup:function(profile){
linb.Thread.abort(profile.$id+':auto');
}
}
},
DataModel:{
position:'absolute',
width:{
ini:200
},
height:{
ini:50
},
steps:0,
value:'0:0',
type:{
listbox:['vertical', 'horizontal'],
ini:'horizontal',
action:function(v){
this.boxing().refresh();
}
},
isRange:{
ini:true,
action:function(v){
this.boxing().refresh();
}
},
showIncreaseHandle:{
ini:true,
action:function(v){
this.boxing().refresh();
}
},
showDecreaseHandle:{
ini:true,
action:function(v){
this.boxing().refresh();
}
}
},
_prepareData:function(profile){
var d=arguments.callee.upper.call(this, profile),
N='display:none';
d._showDes=d.showDecreaseHandle?'':N,
d._showIns=d.showIncreaseHandle?'':N,
d._showD2=d.isRange?'':N;
d._cls=profile.getClass('BOX',d.type=='vertical'?'-v':'-h');
return d;
},
_adjustValue:function(profile,value){
var p = profile.properties,
b=[];
b[0]=parseFloat(value[0])||0;
b[1]=parseFloat(value[1])||0;
if(p.steps){
value=100/p.steps;
b[0]=Math.ceil(b[0]/value);
if(p.isRange)
b[1]=Math.ceil(b[1]/value);
}
return b.join(':');
},
_ensureValue:function(profile, value){
var p = profile.properties,
a = value.split(':'),
min=0,
max=p.steps?p.steps:100,
b=[],
f1=function(a){return parseFloat(a)||0},
f2=function(a){return Math.min(max, Math.max(min,a))};
b[0]= f1(a[0]);
if(p.isRange){
b[1]= f1(a[1]);
if(b[0]>b[1]){
a=b[1];
b[1]=b[0];
b[0]=a;
}
}
b[0]= f2(b[0]);
if(p.isRange)
b[1]= f2(b[1]);
return p.isRange?b.join(':'):(b[0]+'');
},
_v2a:function(profile,v){
var steps=profile.properties.steps,t;
v = typeof v == 'string'? v.split(':') : v;
v[0]=parseFloat(v[0])||0;v[1]=parseFloat(v[1])||0;
if(steps)v[0]=v[0]*100/steps;
if(steps)v[1]=v[1]*100/steps;
if(v[0]>v[1]){
t=v[0];
v[1]=v[0];
v[0]=t;
}
return v;
},
_auto:function(profile, flag){
var id=profile.$id+':auto';
if(linb.Thread.isAlive(id))return;
var p=profile.properties,t,
//%
off=(p.steps?100/p.steps:1)*(flag?1:-1),
task={delay:300},
arr=profile.box._v2a(profile,p.$UIvalue),
fun=function(){
arr[0] += off;
if(p.isRange)
arr[1] += off;
profile.boxing().setUIValue(profile.box._adjustValue(profile,arr));
task.delay *=0.8;
};
task.task=fun;
linb.Thread(id,[task],500,null,fun,null,true).start();
},
_onresize:function(profile, width, height){
var p=profile.properties,
type=p.type,
f=function(k){return profile.getSubNode(k)},
ruler=f('RULER'),
ind=f('IND'),
ru1=f('RULERLEFT');
if(type=='vertical'){
var w=ru1.height(),
w1=p.showDecreaseHandle?f('DECREASE').height():0,
w2=p.showIncreaseHandle?f('INCREASE').height():0,
w3=f('IND1').height();
if(height){
ruler.top(w1+w).height(height-w1-w2-2*w);
ind.top(w1).height(profile._size=height-w1-w2-w3);
}
}else{
var w=ru1.width(),
w1=p.showDecreaseHandle?f('DECREASE').width():0,
w2=p.showIncreaseHandle?f('INCREASE').width():0,
w3=f('IND1').width();
if(width){
ruler.left(w1+w).width(width-w1-w2-2*w);
ind.left(w1).width(profile._size=width-w1-w2-w3);
}
}
}
}
});
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -