谷歌图时间轴:变更条形状和颜色的选择
编辑:这是更新的代码,setFillStroke()改变行程的颜色:谷歌图时间轴:变更条形状和颜色的选择
var observer = new MutationObserver(setBorderRadius); var observer2 = new MutationObserver(setFillStroke);
google.visualization.events.addListener(chart, 'ready', function() {
setBorderRadius();
setFillStroke();
observer.observe(container, {
childList: true,
subtree: true
});
observer2.observe(container, {
childList: true,
subtree: true
});
});
function setBorderRadius() {
Array.prototype.forEach.call(container.getElementsByTagName('rect'), function (rect) {
if (parseFloat(rect.getAttribute('x')) > 0) {
rect.setAttribute('rx', 10);
rect.setAttribute('ry', 10);
};
});
};
function setFillStroke() {
Array.prototype.forEach.call(container.getElementsByTagName('rect'), function (rect) {
if (rect.getAttribute('stroke') == '#000000') {
rect.setAttribute('stroke', '#ffffff');
};
});
};
随着我写了一个代码为make圆点同样的方法有开始和结束的日期相同的元素(如新的日期(2013年,01,01),新的日期(2013年,01,01)):
function biggerPoints() { Array.prototype.forEach.call(container.getElementsByTagName('rect'), function (rect) {
if (rect.getAttribute('width') == '3') {
rect.setAttribute('width', '20');
rect.setAttribute('height', '20');
rect.setAttribute('rx', 20);
rect.setAttribute('ry', 20);
};
});
};
我想圆的Google Chart Timeline创建的rect的边缘,并ch在选中某个元素时更改stoke属性颜色。 因为我无法找到任何选项来做到这一点我用jQuery tryed,但它不工作:
$('rect').attr('rx', '20'); $('rect').attr('ry', '20');
$('rect').attr('stoke', '#202020'); //just for test I'm trying to add the stroke attribute to all, but nothing appened
这甚至可能吗?
回答:
修改图表元素时'ready'
事件触发
然而,图表将恢复到原有的风格上的任何交互
使用MutationObserver
重新申请自定义样式
看以下工作片段...
google.charts.load('current', { callback: drawChart,
packages: ['timeline']
});
function drawChart() {
var container = document.getElementById('timeline');
var chart = new google.visualization.Timeline(container);
var dataTable = new google.visualization.DataTable();
dataTable.addColumn({ type: 'string', id: 'President' });
dataTable.addColumn({ type: 'date', id: 'Start' });
dataTable.addColumn({ type: 'date', id: 'End' });
dataTable.addRows([
[ 'Washington', new Date(1789, 3, 30), new Date(1797, 2, 4) ],
[ 'Adams', new Date(1797, 2, 4), new Date(1801, 2, 4) ],
[ 'Jefferson', new Date(1801, 2, 4), new Date(1809, 2, 4) ]
]);
var observer = new MutationObserver(setBorderRadius);
google.visualization.events.addListener(chart, 'ready', function() {
setBorderRadius();
observer.observe(container, {
childList: true,
subtree: true
});
});
function setBorderRadius() {
Array.prototype.forEach.call(container.getElementsByTagName('rect'), function (rect) {
if (parseFloat(rect.getAttribute('x')) > 0) {
rect.setAttribute('rx', 20);
rect.setAttribute('ry', 20);
}
});
}
chart.draw(dataTable);
}
<script src="https://www.gstatic.com/charts/loader.js"></script> <div id="timeline"></div>
以上是 谷歌图时间轴:变更条形状和颜色的选择 的全部内容, 来源链接: utcz.com/qa/258001.html