在Highcharts中,有一个很好的功能可以缩放和窗格化该区域。但是为了使用平移 - 它应该与在这里的例子中提到的shift键结合使用。有没有办法在放大而不是平移时显示滚动条?Highcharts Zooming with Scroll Bar
回答
您可以使用渲染器,让您的自定义滚动条与它: http://api.highcharts.com/highcharts#Renderer.rect
你可以让两个矩形,一个为你的滚动条背景和第二你的滚动按钮。 http://api.highcharts.com/highcharts#Element.attr
chart.renderer.rect(0, height - 60, width, 20)
.attr({
fill: '#666',
zIndex: 3,
visibility: 'hidden'
}).addClass('scroll')
.add();
您可以使用afterSetExtremes事件及其回调函数里面,你可以用你的复位变焦按钮的知名度连接您的滚动条的可见性:
可以使用ATTR()来改变它们的属性 http://api.highcharts.com/highcharts#xAxis.events.afterSetExtremes
您需要计算滚动条和x位置的宽度。你可以通过你的坐标轴的最小和最大以及宽度的简单的数学比例来完成。例如,您可以设置宽度内重绘事件的回调函数:
redraw: function() {
var chart = this;
this.xAxis[0].displayBtn ? ($('.scrollBar').show() && $('.scroll').show()) : ($('.scrollBar').hide() && $('.scroll').hide())
width = chart.chartWidth;
newWidth = width * (max - min)/(oldMax - oldMin);
$('.scroll').attr({
width: width
});
$('.scrollBar').attr({
width: newWidth,
x: width * min/oldMax,
});
}
您需要的mousedown和鼠标移动事件添加到您的滚动条。你可以使用jQuery来完成。里面mousemove事件,你需要重新计算你的鼠标位置的滚动按钮筑底的x位置:
$('.scrollBar').on('mousedown', function() {
var mousePos;
$(this).bind('mousemove', function(e) {
$(this).attr({
x: e.clientX + 70,
})
chart.xAxis[0].setExtremes(min - ((mousePos || e.clientX) - e.clientX) * oldMax/width, max - ((mousePos || e.clientX) - e.clientX) * oldMax/width, true, false);
mousePos = e.clientX;
});
})
在这里你可以看到一个例子是如何工作的: http://jsfiddle.net/LnneuLoy/8/
亲切的问候。
这太棒了!我做了一个稍微更新的版本,在文档级别添加'mousemove',使滚动变得更加流畅: http://jsfiddle.net/LnneuLoy/20/ – lecker909
- 1. Div with scroll bar - 使用scrollTop滚动到顶部()
- 2. HTML Divs,Columns,Horizontal Scroll Bar
- 3. React Native:ScrollView with auto scroll
- 4. React dnd with auto Scroll
- 5. Simplemodal Scroll Bar and Close Image问题
- 6. jQuery onepage-scroll with a scrollable div
- 7. Highcharts Bar延伸过去MaxValue
- 8. Highcharts errorors with corsshairs
- 9. Android fullscreen activity with action bar
- 10. Python Tkinter Text Widget with Auto&Custom Scroll
- 11. Changinx Bar Charts在Highcharts上的X位置
- 12. Highcharts with JSON双引号
- 13. Highcharts plotLines with multiple xAxis and yAxis
- 14. Highcharts Multiseries Gauge with DataLabels at ends
- 15. Highcharts not angular with angular 4
- 16. 混乱的LineChart with highcharts
- 17. Phonegap Build Inappbrowser Zooming
- 18. Javascript Cursor Zooming
- 19. zooming后arrayindexoutofbound mapview
- 20. 2D screenpace zooming
- 21. OpenGL Smooth Zooming
- 22. Angular 4 Zooming
- 23. DOCTYPE XHTML 1.0 issue + Scroll Bar is not in in IE6
- 24. UIScrollView contentLayoutGuide and zooming centered
- 25. Angular4 with highcharts不能使用world.js
- 26. Showing Loading Bar Bar
- 27. Bootstrap模式不能工作function`scroll` with fullPage.js
- 28. 如何在Highcharts中显示Bar的剩余百分比?
- 29. c#图表控件,带有缩放的垂直滚动问题[“Stuck Scroll Bar”]
- 30. NSTextField Scroll
嗨,你见过Highstock图表吗?我认为这个图表可以满足你的要求。看看这个例子:http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/stock/demo/basic-line/ –
是的,但我不想用highstock。 – Kalyan
如果添加highstock.js库,则可以使用Highcharts中的滚动条。在这里,您可以看到一个示例如何工作:http://jsfiddle.net/fj6d2/3571/ –