mirror of
https://github.com/TBEDP/datavjs.git
synced 2025-12-08 19:45:52 +00:00
modified some details
This commit is contained in:
parent
77f2ce4455
commit
122e802a6f
@ -93,6 +93,12 @@
|
||||
conf.xAxisData = [];
|
||||
this.source = [];
|
||||
var dimenT = conf.allDimensions;
|
||||
if (conf.typeNames == null) {
|
||||
conf.typeNames = [];
|
||||
for (i = 0, j = source[0].length; i < j; i++) {
|
||||
conf.typeNames.push(source[0][i]);
|
||||
}
|
||||
}
|
||||
for (i = 1, l = source.length; i < l; i++) {
|
||||
for(j = 1; j <= conf.typeNames.length; j++) {
|
||||
var line = {};
|
||||
@ -103,6 +109,7 @@
|
||||
conf.xAxisData.push(source[i][0]);
|
||||
|
||||
}
|
||||
|
||||
//设置默认的定义域
|
||||
var getExtent = function (s, dimen) {
|
||||
return d3.extent(s, function (p) {
|
||||
@ -168,7 +175,7 @@
|
||||
tickText.push(paper.text(x[dimenX](ticks[j]), downPos+10, conf.xAxisData[ticks[j]-1]).attr({
|
||||
"fill": "#878791",
|
||||
"fill-opacity": 0.7,
|
||||
"font-family": "雅黑",
|
||||
"font-family": "宋",
|
||||
"font-size": 12
|
||||
}).attr({
|
||||
"text-anchor": "middle"
|
||||
@ -188,7 +195,7 @@
|
||||
tickText.push(paper.text(leftPos - 10, y[dimenY](ticks[j]), ticks[j]).attr({
|
||||
"fill": "#878791",
|
||||
"fill-opacity": 0.7,
|
||||
"font-family": "雅黑",
|
||||
"font-family": "宋",
|
||||
"font-size": 12
|
||||
}).attr({
|
||||
"text-anchor": "end"
|
||||
@ -234,16 +241,17 @@
|
||||
var paper = bars[0].paper;
|
||||
var i, j, k;
|
||||
var textWidth;
|
||||
for(i = 0, j = rectBn.length; i < j; i++)
|
||||
for (i = 0, j = rectBn.length; i < j; i++)
|
||||
if(rectBn[i].data.isClicked) {
|
||||
clicked = true;
|
||||
typeSeq = i;
|
||||
}
|
||||
//hover
|
||||
if(clicked) {
|
||||
if(typeSeq != this.data.seqNum % typeNum)
|
||||
if (clicked) {
|
||||
if (typeSeq != this.data.seqNum % typeNum) {
|
||||
return;
|
||||
for(i = this.data.seqNum % typeNum, j = bars.length; i < j; i+=typeNum) {
|
||||
}
|
||||
for (i = this.data.seqNum % typeNum, j = bars.length; i < j; i+=typeNum) {
|
||||
bars[i].attr({
|
||||
"fill-opacity":0.3
|
||||
});
|
||||
@ -269,39 +277,39 @@
|
||||
temp = paper.text(xPos + 16, yPos, bars[this.data.seqNum].data.yAxisLabel).attr({
|
||||
"fill": "#ffffff",
|
||||
"fill-opacity": 1,
|
||||
"font-family": "雅黑",
|
||||
"font-family": "宋",
|
||||
"font-weight": "bold",
|
||||
"font-size": 12,
|
||||
"text-anchor": "middle"
|
||||
});
|
||||
bars.push(temp);
|
||||
} else {
|
||||
for(i = 0, j = bars.length; i < j; i++) {
|
||||
for (i = 0, j = bars.length; i < j; i++) {
|
||||
if(i == seq) {
|
||||
i+=typeNum-1;
|
||||
i += typeNum - 1;
|
||||
}
|
||||
else {
|
||||
|
||||
bars[i].attr({
|
||||
"fill-opacity":0.3
|
||||
});
|
||||
bars[i].attr({
|
||||
"fill-opacity":0.3
|
||||
});
|
||||
}
|
||||
}
|
||||
//check if the labels will be overlapped
|
||||
var overlapped = false;
|
||||
var pos = [];
|
||||
for(i = 0; i < typeNum; i++) {
|
||||
for (i = 0; i < typeNum; i++) {
|
||||
pos.push(bars[seq + i].attrs.y);
|
||||
}
|
||||
pos.sort();
|
||||
var sub = [];
|
||||
for(i = 0; i < pos.length - 1; i++) {
|
||||
for (i = 0; i < pos.length - 1; i++) {
|
||||
sub.push(pos[i+1] - pos[i]);
|
||||
}
|
||||
sub.sort();
|
||||
if(sub[0] < 20)
|
||||
if (sub[0] < 20) {
|
||||
overlapped = true;
|
||||
for(i = 0; i < typeNum; i++) {
|
||||
}
|
||||
for (i = 0; i < typeNum; i++) {
|
||||
xPos = bars[seq].attrs.x + 8 * typeNum + 8;
|
||||
yPos = overlapped?(bars[seq + typeNum - 1].attrs.y + 20 * (typeNum - i - 1)):bars[seq + i].attrs.y;
|
||||
textWidth = 5 * bars[seq + i].data.yAxisLabel.length + 20;
|
||||
@ -320,7 +328,7 @@
|
||||
temp = paper.text(xPos + 16, yPos, bars[seq + i].data.yAxisLabel).attr({
|
||||
"fill": "#ffffff",
|
||||
"fill-opacity": 1,
|
||||
"font-family": "雅黑",
|
||||
"font-family": "宋",
|
||||
"font-weight": "bold",
|
||||
"font-size": 12,
|
||||
"text-anchor": "middle"
|
||||
@ -344,7 +352,7 @@
|
||||
temp = paper.text(xPos, yPos + 18, this.data.xAxisLabel).attr({
|
||||
"fill": "#ffffff",
|
||||
"fill-opacity": 1,
|
||||
"font-family": "雅黑",
|
||||
"font-family": "宋",
|
||||
"font-weight": "bold",
|
||||
"font-size": 12,
|
||||
"text-anchor": "middle"
|
||||
@ -367,45 +375,47 @@
|
||||
var typeNum = this.data.typeNum;
|
||||
var temp;
|
||||
var i, j, k;
|
||||
for(i = 0, j = rectBn.length; i < j; i++)
|
||||
if(rectBn[i].data.isClicked) {
|
||||
for (i = 0, j = rectBn.length; i < j; i++) {
|
||||
if (rectBn[i].data.isClicked) {
|
||||
clicked = true;
|
||||
typeSeq = i;
|
||||
}
|
||||
}
|
||||
//hover
|
||||
if(clicked) {
|
||||
if(typeSeq != this.data.seqNum % typeNum)
|
||||
if (typeSeq != this.data.seqNum % typeNum) {
|
||||
return;
|
||||
for(i = this.data.seqNum % typeNum, j = bars.length; i < j; i+=typeNum) {
|
||||
}
|
||||
for (i = this.data.seqNum % typeNum, j = bars.length; i < j; i+=typeNum) {
|
||||
bars[i].attr({
|
||||
"fill-opacity":1
|
||||
});
|
||||
}
|
||||
for(i = 0; i < 3; i++) {
|
||||
for (i = 0; i < 3; i++) {
|
||||
temp = bars.pop();
|
||||
temp.remove();
|
||||
}
|
||||
} else {
|
||||
for(i = 0, j = bars.length; i < j; i++) {
|
||||
for (i = 0, j = bars.length; i < j; i++) {
|
||||
bars[i].attr({
|
||||
"fill-opacity":1
|
||||
});
|
||||
}
|
||||
for(i = 0, j = typeNum * 3; i < j; i++) {
|
||||
for (i = 0, j = typeNum * 3; i < j; i++) {
|
||||
temp = bars.pop();
|
||||
temp.remove();
|
||||
}
|
||||
}
|
||||
//pins
|
||||
for(i = 0; i < 3; i++) {
|
||||
for (i = 0; i < 3; i++) {
|
||||
temp = bars.pop();
|
||||
temp.remove();
|
||||
}
|
||||
};
|
||||
|
||||
for (i = 0, j = this.source.length; i < j; i++) {
|
||||
for (k = 0, l = conf.typeNames.length; k < l; k++)
|
||||
if(i%l == k) {
|
||||
for (k = 0, l = conf.typeNames.length; k < l; k++) {
|
||||
if (i%l == k) {
|
||||
temp = paper.rect((x[dimenX](this.source[i][dimenX])-barWidth * (l / 2 - i % l)), y[dimenY](this.source[i][dimenY]),
|
||||
barWidth, downPos - y[dimenY](this.source[i][dimenY])).attr({
|
||||
"fill": conf.barColor[k],
|
||||
@ -424,6 +434,7 @@
|
||||
temp.mouseout(mouseOutBar);
|
||||
bars.push(temp);
|
||||
}
|
||||
}
|
||||
}
|
||||
//legend
|
||||
var mouseOverLegend = function (event) {
|
||||
@ -432,16 +443,17 @@
|
||||
var rectBn = this.data.rectBn;
|
||||
var typeNum = this.data.typeNum;
|
||||
var i, j, k;
|
||||
for(i = 0, j = rectBn.length; i < j; i++)
|
||||
for (i = 0, j = rectBn.length; i < j; i++)
|
||||
if(rectBn[i].data.isClicked)
|
||||
return;
|
||||
for(k = 0; k < typeNum; k++) {
|
||||
if(seq % typeNum != k)
|
||||
for(i = k, j = bars.length; i < j; i+=typeNum) {
|
||||
for (k = 0; k < typeNum; k++) {
|
||||
if (seq % typeNum != k) {
|
||||
for (i = k, j = bars.length; i < j; i+=typeNum) {
|
||||
bars[i].attr({
|
||||
"fill-opacity":0.3
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
this.data.underBn[seq].attr({
|
||||
"fill-opacity":0.5
|
||||
@ -453,17 +465,20 @@
|
||||
var rectBn = this.data.rectBn;
|
||||
var typeNum = this.data.typeNum;
|
||||
var i, j, k;
|
||||
for(i = 0, j = rectBn.length; i < j; i++)
|
||||
if(rectBn[i].data.isClicked)
|
||||
for (i = 0, j = rectBn.length; i < j; i++) {
|
||||
if(rectBn[i].data.isClicked) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
//
|
||||
for(k = 0; k < typeNum; k++) {
|
||||
if(seq % typeNum != k)
|
||||
for(i = k, j = bars.length; i < j; i+=typeNum) {
|
||||
for (k = 0; k < typeNum; k++) {
|
||||
if (seq % typeNum != k) {
|
||||
for (i = k, j = bars.length; i < j; i+=typeNum) {
|
||||
bars[i].attr({
|
||||
"fill-opacity":1
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
this.data.underBn[seq].attr({
|
||||
"fill-opacity":0
|
||||
@ -479,8 +494,8 @@
|
||||
var typeNum = this.data.typeNum;
|
||||
var i, j, k;
|
||||
//check if any legend has been already clicked
|
||||
for(i = 0, j = rectBn.length; i < j; i++) {
|
||||
if(rectBn[i].data.isClicked) {
|
||||
for (i = 0, j = rectBn.length; i < j; i++) {
|
||||
if (rectBn[i].data.isClicked) {
|
||||
clicked = true;
|
||||
lastClickedSeq = i;
|
||||
break;
|
||||
@ -489,17 +504,18 @@
|
||||
if(this.data.isClicked) {
|
||||
for(i = 0; i < typeNum; i++) {
|
||||
if(i != seq % typeNum) {
|
||||
for(var j = i, m = bars.length; j < m; j+=typeNum)
|
||||
for(var j = i, m = bars.length; j < m; j+=typeNum) {
|
||||
bars[j].attr({
|
||||
"fill-opacity":0.3
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
this.data.isClicked = false;
|
||||
} else if(!clicked) {
|
||||
for(i = 0; i < typeNum; i++) {
|
||||
if(i != seq % typeNum) {
|
||||
for(j = i, m = bars.length; j < m; j+=typeNum)
|
||||
for (i = 0; i < typeNum; i++) {
|
||||
if (i != seq % typeNum) {
|
||||
for (j = i, m = bars.length; j < m; j+=typeNum)
|
||||
bars[j].attr({
|
||||
"fill-opacity":0.1
|
||||
});
|
||||
@ -511,14 +527,16 @@
|
||||
underBn[lastClickedSeq].attr({
|
||||
"fill-opacity":0
|
||||
});
|
||||
for(i = lastClickedSeq % typeNum, j = bars.length; i < j; i+=typeNum)
|
||||
for (i = lastClickedSeq % typeNum, j = bars.length; i < j; i+=typeNum) {
|
||||
bars[i].attr({
|
||||
"fill-opacity":0.1
|
||||
});
|
||||
for(i = seq % typeNum, j = bars.length; i < j; i+=typeNum)
|
||||
}
|
||||
for (i = seq % typeNum, j = bars.length; i < j; i+=typeNum) {
|
||||
bars[i].attr({
|
||||
"fill-opacity":1
|
||||
});
|
||||
}
|
||||
this.data.rectBn[lastClickedSeq].data.isClicked = false;
|
||||
this.data.isClicked = true;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user