貢献に感謝します。追加するだけで、カーソルとズーム機能が混在している場合があり、グラフのセクションの画像を作成する必要がある場合があります。元に戻してズームバックして他の画像を作成することを望んでいます。セクション。jqPlotはグラフを元のプロットに戻さないため、これは簡単ではない可能性があります。そのため、手動でこれを行う必要があります。
私の救済
$.jqplotオプションを強化する
cursor: {
show: true,
zoom: true,
looseZoom: true,
showTooltip: false,
dblClickReset:true,
}
これにより、ユーザーはグラフの最初の外観に戻ることができます。このアプローチを選択する場合は、次のようなアドバイスノートを介して元に戻す方法についてユーザーにアドバイスすることを忘れないでください。
Double click on the Graph to Reset Zoom back to 100%
使いやすさの目的で。
コーディングにもっと興味がある人のためにここに救済策があります、それはマークによって導入されたコードのいくつかを含みます(ありがとう)
グラフのすぐ下にボタンを作成し、id属性を指定して、クリック関数に偶数ハンドラーをアタッチします。
<button id="show_revert_graph_btn" class="jqplot-replot-button" title="Reset Zoom back to 100%">Revert the Graph</button>
イベントリスナーをアタッチし、このようなハンドラーを実装/登録します
$('#show_revert_graph_btn').click(function(){
// simulating a double click on the canvas
// not that the selecting expression includes
// the div id of where i chose to plot the chart "chart104" and the default class
// provided to the canvas holding my chart i.e "canvas.jqplot-event-canvas"
// then i double click it
$('#chart104 canvas.jqplot-event-canvas').dblclick();
});
ズーム後の画像の作成
私のアプリケーションでは、チャートのさまざまな部分から複数の画像を作成する必要があったため、ズームを使用するとこの部分を拡大でき、キャンバスから画像への機能を使用すると、後にキャンバスに表示されている現在のデータを保存できますポイントを拡大しました。課題は、 Remedyをコピーするための新しい画像として新しいズームポイントをリロードする方法でした
- プロット画像のボタンを作成します
- jqueryのtoggleイベントにリスナーをアタッチすると、画像を表示および非表示にできます
- 画像を処理してズームイベントを管理します。つまり、ズームインすると新しい画像が生成され、クリックするとチャート全体の古い画像ではなく、ズームインした部分の画像が表示されます。
$('#show_plotted_image_btn').toggle(
function(){
console.log('showing graph');
// get the image
function genImg(){
var imgData = $('#chart104').jqplotToImageStr({});
// given the div id of your plot, get the img data
var imgElem = $('<img/>').attr('src',imgData); // create an img and add the data to it
$('#plotted_image_div').empty(); // remove the old graph
$('#plotted_image_div').append(imgElem);
};
genImg();
// show the image
$('#plotted_image_div').css('display','block');
},
function(){
// hide the image
console.log('hiding graph');
$('#plotted_image_div').css('display','none');
}
);
*私の実装では、最新の画像のみを表示したかったので、新しい画像を要求するたびに、$('#plotted_image_div')。empty();を介して古い画像を削除します。これは、単に古い画像を空にします。次に、新しいものを追加します。*
*これがさらに明確にする必要があるかもしれない人のための私のHTMLです*
<div id="chart104" class=""></div>
<button id="show_plotted_image_btn" class="jqplot-image-button">View Plot Image</button>
<span style="font-weight: bold; color:#FC2896;"> Double click on the Graph to Reset Zoom back to 100%</span>
<button id="show_revert_graph_btn" class="jqplot-replot-button" title="Reset Zoom back to 100%">Revert the Graph</button>
<div id="plotted_image_div" class="" style="display: none;"></div>
幸運を