#1, set your options variable as such and make sure the target DIV is styled properly:
options = {
width: '100%',
height: '100%',
#2, Kind of. If you simply set the width to 100% as I suggested above, the engine will cram the entire chart into the view width. This can cause some datasets to look very cramped.
To work around this, we need to understand that the GC engine is drawing an SVG which requires a known width in pixels. Setting width to 100% is just passing the viewwidth as pixels.
So...to get a scrollbar we should determine the minimum size we want something to be. For example, say I do not want bars in my barchart any smaller than 50px. Well, then I need to fetch how many bars my dataset has and the current viewwidth, and do some division. If the value is less than 50, I need to multiply the # of columns by my minimum width, and set this as the CHART width. Then set the target div width to 100vw and with css style "overflow-x:auto". This mostly works, but you cannot "grab" the chart and drag it left or right, so I used some draggable plugin.
This should work for the gantt chart, but it is not responsive to filters (if those exist for gantt), or at least I have not yet found a way to intercept the filter event and recalculate what the width should be based on the filtered dataset.
Hope this helps.