Javascript 谷歌时间线图重新绘制位置
当绘制图表时,它会滚动到顶部,但我试图使图表在重画时保持在同一位置。因为我看不到源代码,所以我尝试获取滚动位置并在重画时滚动到它,但它不起作用。有人能帮我吗?或者有没有更好的方法。多谢各位Javascript 谷歌时间线图重新绘制位置,javascript,jquery,html,svg,google-visualization,Javascript,Jquery,Html,Svg,Google Visualization,当绘制图表时,它会滚动到顶部,但我试图使图表在重画时保持在同一位置。因为我看不到源代码,所以我尝试获取滚动位置并在重画时滚动到它,但它不起作用。有人能帮我吗?或者有没有更好的方法。多谢各位 <div class="row"> <div class="col-12"> <div id="timelineDiv"> <div class="text-center"> <p class="m
<div class="row">
<div class="col-12">
<div id="timelineDiv">
<div class="text-center">
<p class="mes">{{timelinecontr.mess}}</p>
</div>
<div class="col-12">
<div id="timeline" class="chart"></div>
</div>
</div>
</div>
</div>
#timelineDiv{
overflow-x: scroll;
overflow-y: scroll;
white-space: nowrap;
border: 13px solid #bed5cd;
width: 100%;
margin: 0 auto;
position: relative;
background-color: deepskyblue;
height: 550px;
}
timelinecontr.pos = $('#timeline div').scrollTop(); // position
$('#timeline div').scrollTop(timelinecontr.pos) // this is called on chart redraw
{{timelinecontrol.mess}
#时间线{
溢出-x:滚动;
溢出y:滚动;
空白:nowrap;
边框:13px实心#bed5cd;
宽度:100%;
保证金:0自动;
位置:相对位置;
背景颜色:深蓝;
高度:550px;
}
timelinecontr.pos=$(“#timeline div”).scrollTop();//位置
$('#timeline div').scrollTop(timeline contr.pos)//这在图表重画时调用
在设置滚动位置之前,需要等待图表完成绘制
var rowHeight = 42;
var timelinePos;
google.visualization.events.addListener(chart, 'ready', function () {
$('#timeline').scrollTop(timelinePos);
});
function drawChart() {
timelinePos = $('#timeline').scrollTop();
chart.draw(dataTable, {
height: (dataTable.getNumberOfRows() * rowHeight) + rowHeight
});
}
在绘制图表之前,获取滚动位置
var rowHeight = 42;
var timelinePos;
google.visualization.events.addListener(chart, 'ready', function () {
$('#timeline').scrollTop(timelinePos);
});
function drawChart() {
timelinePos = $('#timeline').scrollTop();
chart.draw(dataTable, {
height: (dataTable.getNumberOfRows() * rowHeight) + rowHeight
});
}
当图表的'ready'
事件触发时,设置滚动位置
var rowHeight = 42;
var timelinePos;
google.visualization.events.addListener(chart, 'ready', function () {
$('#timeline').scrollTop(timelinePos);
});
function drawChart() {
timelinePos = $('#timeline').scrollTop();
chart.draw(dataTable, {
height: (dataTable.getNumberOfRows() * rowHeight) + rowHeight
});
}
注意:如果图表上没有设置高度选项,时间线将使用自己的滚动条
请参阅以下工作片段
google.charts.load('current'{
回调:函数(){
var container=document.getElementById('timeline');
var chart=newgoogle.visualization.Timeline(容器);
var dataTable=new google.visualization.dataTable();
addColumn({type:'string',id:'Room'});
addColumn({type:'string',id:'Name'});
addColumn({type:'date',id:'Start'});
addColumn({type:'date',id:'End'});
dataTable.addRows([
['1','A',新日期(2011年3月30日),新日期(2012年2月4日)],
['2','B',新日期(2012,2,4),新日期(2013,3,30)],
['3','C',新日期(2013年3月30日),新日期(2014年2月4日)],
['4','D',新日期(2014年2月4日),新日期(2015年2月4日)],
['5','E',新日期(2015年3月30日),新日期(2016年2月4日)],
['6','F',新日期(2016年2月4日),新日期(2017年2月4日)],
['7','G',新日期(2017年2月4日),新日期(2018年2月4日)],
['8','H',新日期(2018年2月4日),新日期(2019年2月4日)],
['9','I',新日期(2019年2月4日),新日期(2020年2月4日)],
['0','J',新日期(2020年2月4日),新日期(2021年2月4日)]
]);
var行高=42;
var timelinePos;
google.visualization.events.addListener(图表'ready',函数(){
$(“#时间线”).scrollTop(timelinePos);
});
函数绘图图(){
timelinePos=$(“#时间线”).scrollTop();
图表绘制(数据表{
高度:(dataTable.getNumberOfRows()*rowHeight)+rowHeight
});
}
$(“#绘制图表”)。在('click',drawChart');
$(窗口)。调整大小(绘图图);
图纸();
},
软件包:[“时间线”]
});代码>
#时间线{
溢出-x:滚动;
溢出y:滚动;
空白:nowrap;
边框:13px实心#bed5cd;
宽度:100%;
保证金:0自动;
位置:相对位置;
背景颜色:深蓝;
高度:350px;
}
绘制图表
似乎工作正常,在最初绘制图表后,滚动到某个位置并按下“绘制图表”按钮--滚动位置保持在按下按钮之前的位置您是对的,我没有正确阅读此内容,希望它在绘制后滚动。谢谢